字典和集合
字典的定义语法为{e1,e2,…}
每一个元素是一个键和值对
字典的创建
dic1 = {'a':1,'b':2,'c':3}
print(dic1) # {'a': 1, 'b': 2, 'c': 3}
字典的内置方法
# dict.fromkeys(seq,) 创建新的字典
seq = {'name','age','sex'}
dic2 = dict.fromkeys(seq,(1,2))
print('新的字典为:%s'% str(dic2))
# dict.keys()
dict = {'Name': 'lsgogroup', 'Age': 7}
print(list(dict.keys())) # ['Name', 'Age']
# dic.values()
dict = {'Sex': 'female', 'Age': 7, 'Name': 'Zara'}
print("字典所有值为 : ", list(dict.values()))
# 字典所有值为 : [7, 'female', 'Zara']
#dict.items()
dict = {'Name': 'Lsgogroup', 'Age': 7}
print("Value : %s" % dict.items())
# Value : dict_items([('Name', 'Lsgogroup'), ('Age', 7)])
print(tuple(dict.items()))
# (('Name', 'Lsgogroup'), ('Age', 7))
# dict.get(key,default)
dict = {'Name': 'Lsgogroup', 'Age': 27}
print("Age 值为 : %s" % dict.get('Age')) # Age 值为 : 27
print("Sex 值为 : %s" % dict.get('Sex', "NA")) # Sex 值为 : NA
# key in dict
dict = {'Name': 'Lsgogroup', 'Age': 7}
# 检测键 Age 是否存在
if 'Age' in dict:
print("键 Age 存在")
else:
print("键 Age 不存在")
# dict.clear() 删除字典内的所有元素
# dict.copy() 浅复制
dict1 = {'Name': 'Lsgogroup', 'Age': 7, 'Class': 'First'}
dict2 = dict1.copy()
print("新复制的字典为 : ", dict2)
# 新复制的字典为 : {'Age': 7, 'Name': 'Lsgogroup', 'Class': 'First'}
dict1 = {'user': 'lsgogroup', 'num': [1, 2, 3]}
# 引用对象
dict2 = dict1
# 深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用
dict3 = dict1.copy()
print(id(dict1)) # 148635574728
print(id(dict2)) # 148635574728
print(id(dict3)) # 148635574344
# 修改 data 数据
dict1['user'] = 'root'
dict1['num'].remove(1)
# 输出结果
print(dict1) # {'user': 'root', 'num': [2, 3]}
print(dict2) # {'user': 'root', 'num': [2, 3]}
print(dict3) # {'user': 'runoob', 'num': [2, 3]
# dict.pop(key,) 删除字典给定key所对应的值,返回被删除的值
dict1 = {1: "a", 2: [1, 2]}
print(dict1.pop(1), dict1) # a {2: [1, 2]}
# dict.popitem()随机返回并删除一对键和值
dict1 = {1: "a", 2: [1, 2]}
print(dict1.popitem()) # (1, 'a')
print(dict1) # {2: [1, 2]}
# dict.setdefault(key,default=None) 同get 没有则添加
dict = {'Name': 'Lsgogroup', 'Age': 7}
print("Age 键的值为 : %s" % dict.setdefault('Age', None)) # Age 键的值为 : 7
print("Sex 键的值为 : %s" % dict.setdefault('Sex', None)) # Sex 键的值为 : None
print("新字典为:", dict)
# 新字典为: {'Age': 7, 'Name': 'Lsgogroup', 'Sex': None}
集合 (无序、唯一)
num = {}
print(type(num)) # <class 'dict'>
num = {1, 2, 3, 4}
print(type(num)) # <class 'set'>
# 转化为集合
a = set('abracadabra')
print(a)
# {'r', 'b', 'd', 'c', 'a'}
# for 读出所有元素
thisset = set(['Google', 'Baidu', 'Taobao'])
for item in thisset:
print(item)
# Baidu
# Google
# Taobao
内置函数
# set.add()
fruits = {"apple", "banana", "cherry"}
fruits.add("orange")
print(fruits)
# {'orange', 'cherry', 'banana', 'apple'}
fruits.add("apple")
print(fruits)
# {'orange', 'cherry', 'banana', 'apple'}
# set.remove()
fruits = {"apple", "banana", "cherry"}
fruits.remove("banana")
print(fruits) # {'apple', 'cherry'}