Python基础之元组、字典、集合

本文主要介绍Python元组、字典、集合:

元组及使用

元组是顺序存储相同/不同类型的元素,与列表类似,但存储是元素是不可变的,用来描述不需要改变的信息;元组使用小括号,列表使用方括号。
元组定义,使用()将元素括起来,元素之间用","隔开,不支持增删改

#定义元组
db_info = ("192.168.10.1",3306,"root","root123")

特性:通过下标查询元组指定位置的元素

ip = db_info[0]
port = db_info[1]

空元组定义:

none_tuple = ()

只包含一个元素的元组:

one_tuple = ("one",)  #一定要加","

循环遍历元组

for item in db_info:
    print(item)

字典及使用

字典是另一种可变容器模型,且可存储任意类型对象。存储Key-Value键值对类型的数据(与Java中的哈希表类似)
字典定义:字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中: {key1:value1, key2:value2, key3:value3, ...}

user_info_dict = {"name":"xmamiga","age":100,"gender":"male","job":"coder"}

查询:根据Key查找Value

print(user_info_dict["name"])

字典具有添加、修改、删除操作

#添加键值对
user_info_dict["tel"] = "13812345567"
print(user_info_dict)

#修改
user_info_dict["tel"]  = "138888888888"
print(user_info_dict)

#删除
del user_info_dict["tel"]
print(user_info_dict)

内置方法:get、keys、value、items、clear
循环遍历字典

#字典 get使用,可以有默认值
print(user_info_dict.get("tel","10010"))
#keys获取字典中所有的key
for key in user_info_dict.keys():
    print("{}:{}".format(key,user_info_dict[key]))
#values获取字典中所有的values
for value in user_info_dict.values():
    print(value)
#items方法使用
for item in user_info_dict.items():
    # print(type(item))
    print(item)
    print(item[0])
    print(item[1])
for key,value in user_info_dict.items():
    print(key)
    print(value)
#clear()清空字典
user_info_dict.clear()
print(user_info_dict)

  • 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住;
  • 键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行。

集合Set及使用

无序存储不同数据类型不复元素的序列;与列表和元组的区别,集合是无序的
集合定义:name_set = {"xiaoxin", "cchip", "xmamiga"}
使set(序列)对序列中元素去重,重复元素在set中自动被过滤,同时创建集合,例如:

    name_set = set(["cchip", "xmamiga"])

创建空集合:

none_set = set()

傅in和not in判断一个元素在集合中是否存在

user_id = "id5"
if user_id in distinct_set:
    print(user_id)

if user_id not in distinct_set:
    print("{}不存在".format(user_id))

使用add(元素)方法添加一个元素到集合中

name_set = {"xmamiga","lisi"}
name_set.add("amigo")
print(name_set)

使用update(序列)方法将一个序列中的元素添加到集合中,同时对元素去重

#update(序列)
name_set.update(["悟空","八戒"])
print(name_set)

集合内置的一些方法:
remove(元素)根据元素值删除集合中指定元素,如果元素不存在,则报错

#remover(元素)
name_set.remove("悟空")
print(name_set)

discard(元素)根据元素值删除集合中指定元素,如果元素不存在,不会引发错误

#使用remove删除一个不存在的元素,会报错
name_set.remove("西游记")
#dicard(元素),删除一个不存在的元素,不会报错
name_set.discard("西游记")

pop()随机删除集合中的某个元素,并且返回被删除的元素

#pop()随机删除集合中的某个元素,并返回被删除的元素
print(name_set)
name = name_set.pop()
print(name_set)

clear()清空集合

集合操作

  • 交集intersection(&)
#交集
num_set1 = {1,2,4,7}
num_set2 = {2,5,8,9}
inter_set1 = num_set1 & num_set2
inter_set2 = num_set1.intersection(num_set2)
print(inter_set1)
print(inter_set2)
  • 并集union(|)
#并集
union_set1 = num_set1 | num_set2
union_set2 = num_set1.union(num_set2)
print(union_set1)
print(union_set2)
  • 差集difference(-)
#差集
diff_set1 = num_set1 - num_set2
diff_set2 = num_set1.difference(num_set2)
print(diff_set1)
print(diff_set2)
  • 对称差集(^)
#对称差集
sym_diff_set1 = num_set1 ^ num_set2
sym_diff_set2 = num_set1.symmetric_difference(num_set2)
print(sym_diff_set1)
print(sym_diff_set2)