欢迎加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。
key不能重复;
{ } 内部是键值对,用逗号,隔开
info = {
“k1”:”value1”,
“k2”:value2
}
字典的value可以是任何值任何类型,甚至是嵌套字典;
字典的key,字典是按照哈希表的方式保存的,unhashable类型不能作为key,list/dict类型不能作为key
字典是无序的,每次打印顺序都不一样
字典中索引就是key,可以通过key取value,value = dict[key],同样可以嵌套索引
因为字典是无序的,所以不能通过切片取值
字典支持del删除,del info[key] 通过key删除键值对
for循环迭代对字典取值的时候,默认取key
dict.keys() #取key
dict.values() #取value
k,v in dict.items() #取键值对
clear() 清空
copy() 浅拷贝
fromkeys() 生成字典,第一个参数为key(可迭代),第二个参数为value,staticmethod
get() 根据key取值,取不到返回None,或返回设定值
items() keys() values()
pop() 根据key删除一个键值对,并返回value,如果key不存在可以返回设定值dic.pop(key, arg) – key不存在则返回arg
popitem() 字典中随机删除一个键值对并返回
setdefault() 设置,dic.setdefault(key, value),如果key已经存在,不设置且返回字典中的key所对应的value,如果不存在,则用参数设置一个键值对key:value,并返回value
update() 根据key更新value,有则覆盖,无则设置
在方法中,如果看到参数是 **kwargs 表示可以传入字典 **{k:v}
由不同元素组成的集合,集合是一组无序排列的可hash的值(只能存放不可变类型),可以作为字典的key
定义:s = {1, 2, 4, 5} - 区别字典,字典元素是键值对
不同元素组成 – 会自动去重
集合是无序的
集合元素必须是不可变类型的元素
set() 方法定义集合,通过for循环迭代
add() 增加一个元素
clear() 清空
pop() 随机删除一个元素,并返回被删除的元素
remove() 删除指定元素,删除不存在报错
discard() 删除指定元素,元素不存在不报错
copy()
集合的关系运算
& 交集 s1.intersection(s2)
| 并集 s1.union(s2)|
- 差集 s1.difference(s2)
symmetric_difference() 交叉补集,s1 | s2 – (s1 & s2)
s1. symmetric_difference(s2) → s1 ^ s2
difference_update()
s1.difference_update(s2)相当于s1=s1-s2
intersection _update()
symmetric_difference_update()
isdisjoint() 如果没有交集返回True,否则False
issubset() s1是否是s2的子集,是返回True否则False
issuperset() s1是否是s2的父集
update() 更新多个值,add()只能更新一个值
set是可变类型,通过frozenset()可以定义不可变类型集合
如何把一个列表去重? li = [ … ]
list(set(li))