Python集合&字典
@
目录
字典
字典的几种定义方式
第一种
字典{key1 : value1, key2 : value2, ......}
dict1 = {'one': 1, 'two': 2}
第二种
使用工厂函数,用元组操作。
dict2 = dict(((1,2), (3, 4), (5, 6), (7,8)))
需要用到这么多括号的原因:
- 第一层括号是dict的括号,里面需要一个元素。
- 第二层括号就是为了把四个元组变成一个对象给dict
- 第三层括号是元组的括号
第三种
还是使用工厂函数dict,但是是用"="操作
字典dict(key1 = value1, key2 = value2, ......)
dict3 = dict(one = 1, two = 2, three = 3)
键值key不能随便改格式,解释器会自动将键值转换为字符串存储。
字典的一些基本操作
通过key得到value
value = dict3[key]
value = dict3.get(key)
增加字典键值对
dict3[new_key] = new_value
dict3.update(dict2)
此时Python会自动创建键值对
删除字典键值对
dict3.pop(key)
会返回与之对应的键值
格式化操作
dict4.formkeys((1, 2, 3),'num')
新建一个字典dict4然后所有的key都对应'num'
清空字典
辨析dict3 = {}
与dict3.clear
前者是把dict3指向一块新的内存,不再管原来的字典,若原来的地址未被其它引用指向,将会被Python的垃圾自动回收机制清空,如果有引用,将不会被清空。
后者是直接将dict3指向的那块内存清空。
复制字典
辨析dict4 = dict3
与dict4 = dict3.copy
前者并未开辟一块新内存,后者开辟了,底层原理同上,懂得都懂。
遍历字典
遍历key
for eachkey in dict3.keys():
print(eachkey)
遍历value
for eachvalue in dict3.values():
print(eachvalue)
遍历键值对
for eachitems in dict3.items():
print(eachitems)
成员资格判断
key in dict3
返回值为bool类型
集合
集合的定义方式
num = {1, 2, 3, 6, 8, 7, 4, 9, 10, 16, 17, 14, 2, 4}
用大花括号即可定义
往集合里面添加元素
num.append(10)
集合里面删除元素
num.pop()
##随机删除一个
num.remove(4)
##删除4
注意:集合会自动排序,操作时要注意。