无序的容器并没有储存顺序(也许在内存地址上有顺序),所以不能使用序列容器的方法
字典 { Dict }

定义字典

{key:value, key2:value2}# 定义一个字典dict# 用"{}"括起来,每个元素用','号隔开即可# 每个元素都有一个"key"键值与"value"值相互对应## 注意:"key"键值不能重复
# 示例bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}print(type(bid))print(bid)# 输出<class 'dict'>{'Name': 'Hibari', 'UID': '7565634', 'Level': '5'}
常用操作、方法
——————-修改———————
值查询 :D[key]
值修改 :D[key] = vaule
元素删除 :del D[key]
添加添加 :D[new_key] =vaule

bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}# 值查询print(bid["Name"])# 值修改bid["Name"] = "HibariCN"print(bid["Name"])# 添加新元素bid["New"] = "Vip"print(bid)# 元素删除del bid["UID"]print(bid)# ================================# 输出HibariCN{'Name': 'HibariCN', 'UID': '7565634', 'Level': '5', 'New': 'Vip'}{'Name': 'HibariCN', 'Level': '5', 'New': 'Vip'}
——————-查询———————
键值查询 :D[key]

# 示例dict1={"A":"Hibari", "B":"HibariCN"}print (Dict1[1])# 输出Hibaricn
键值查询 :get( )
是用于代替D[key]的
D.get(key, default=None) # 只能用于dict类型# 参数说明:# D dict字典(需要查询的字典)# key key键值(查询的键值)# default=None 元素值## 功能说明:# 查询'k'值是否在字典'D'中,如果存在,返回与键值相对于的值# 如果不存在返回"None"
# ================================# 示例bid = {"Name":"Hibari", "UID":"7565634", "Level":"5", "vipType":"year"}print(bid.get("Name"))print(bid.get("ID"))# 输出HibariNone# ================================
# D.get(key)与D[key]的区别# 当键值'Key'不在字典'D'时# D.get(key) 返回None# D[key] 报错KeyError
键值判断 :in \ not in (成员运算符)
# 返回值:# 布尔(在集合中返回True,否则返回False)# 功能说明:# 通过成员运算符可以判断某个元素的'Key'键值,是否在集合中
# ================================# 示例bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}print("key:", ("Name" in bid))print("Value:", ("Hibari" in bid))print("key:", ("ID" in bid))print("key:", ("UID" not in bid))# 输出key: TrueValue: Falsekey: Falsekey: False# ================================
——————-遍历———————
遍历键值 :keys( )

D.keys()# 参数说明# D 字典Dict## 返回值:# values() dict_keys([list]) 【特殊的List列表,需要用list()方法转换成list】## 功能说明:# 返回值"dict_keys"通常用于遍历字典# 通过list()函数可以转换成列表
# ================================# 示例bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}for i in bid.keys():print("key:", i)print("value:", bid[i],"\n")# 输出key: Namevalue: Hibarikey: UIDvalue: 7565634key: Levelvalue: 5# ================================
# dict_keys转list
# ================================# 示例bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}a = list(bid.keys())print(type(bid.keys()))print(bid.keys)print(a)# 输出<class 'dict_keys'>dict_keys(['Name', 'UID', 'Level'])['Name', 'UID', 'Level']
遍历值:value( )

D.values()# 参数说明# D 字典Dict# 返回值:# values(): dict_values([list])【特殊的List列表,需要用list()方法转换成list】
# ================================# 示例bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}for i in bid.values():print(i)# 输出Hibari75656345# ================================
# dict_values转list
# ================================# 示例bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}a = list(bid.values())print(type(bid.values()))print(bid.values)print(a)# 输出<class 'dict_values'>dict_keys(['Hibari', '7565634', '5'])['Hibari', '7565634', '5']# ================================
——————-其他———————
字典返回元组 :items( )

D.items()# 参数说明# D 字典Dict# 返回值:# items() <class 'dict_items'>【特殊的List列表,需要用list()方法转换成list】
# ================================# 示例bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}a = list(bid.items())print(type(bid.items()))print(bid.items())print(a)# 输出<class 'dict_items'>dict_items([('Name', 'Hibari'), ('UID', '7565634'), ('Level', '5')])[('Name', 'Hibari'), ('UID', '7565634'), ('Level', '5')]# ================================
# ================================# 示例2:遍历字典bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}for i in bid.items():print(i)# 输出('Name', 'Hibari')('UID', '7565634')('Level', '5')# ================================
长度查询 :len( )

len(object)# 参数说明:# object: 集合\字典(查询的字符串,或者序列)## 返回值:# len(): 整数(返回元素的个数)
# ================================# 示例bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}bid2 = {"5", "5", "5", "a"}print(len(bid))print(len(bid2))# 输出32# ================================
更多列表方法:
https://docs.python.org/zh-cn/3.9/tutorial/datastructures.html#looping-techniques
list.append(x)在列表的末尾添加一个元素。相当于 a[len(a):] = [x] 。list.extend(iterable)使用可迭代对象中的所有元素来扩展列表。相当于 a[len(a):] = iterable 。list.insert(i, x)在给定的位置插入一个元素。第一个参数是要插入的元素的索引,所以 a.insert(0, x) 插入列表头部, a.insert(len(a), x) 等同于 a.append(x) 。list.remove(x)移除列表中第一个值为 x 的元素。如果没有这样的元素,则抛出 ValueError 异常。list.pop([i])删除列表中给定位置的元素并返回它。如果没有给定位置,a.pop() 将会删除并返回列表中的最后一个元素。( 方法签名中 i 两边的方括号表示这个参数是可选的,而不是要你输入方括号。你会在 Python 参考库中经常看到这种表示方法)。list.clear()删除列表中所有的元素。相当于 del a[:] 。list.index(x[, start[, end]])返回列表中第一个值为 x 的元素的从零开始的索引。如果没有这样的元素将会抛出 ValueError 异常。可选参数 start 和 end 是切片符号,用于将搜索限制为列表的特定子序列。返回的索引是相对于整个序列的开始计算的,而不是 start 参数。list.count(x)返回元素 x 在列表中出现的次数。list.sort(*, key=None, reverse=False)对列表中的元素进行排序(参数可用于自定义排序,解释请参见 sorted())。list.reverse()反转列表中的元素。list.copy()返回列表的一个浅拷贝。相当于 a[:] 。
集合 { Set }

定义集合

{value, value1, value2}# 定义一个集合set# 用"{}"括起来,每个元素用','号隔开即可## 注意:"value"不能重复,重复的会被去除
# ================================# 示例bid = {"5", "5", "5", "a"}print(type(bid))print(bid)# 输出<class 'set'>{'a', '5'}# ================================# ================================# 示例2:创建空集bid = set()# ================================
常用操作、方法
——————-修改———————
添加元素 :add( )

S.add(values)# 参数说明:# S 集合# valuse 值(需要添加到集合中的值)# 功能说明:# 向集合中添加元素
# ================================# 示例bid = {"Hibari", "7565634", "5"}bid.add("VIP")print(bid)# 输出{'5', '7565634', 'VIP', 'Hibari'}# ================================
列表追加到集合 :updata( )

S.update(L)# 参数说明:# S 集合# L 列表(需要添加到集合中的列表)# 功能说明:# 将列表'L'中的元素添加到集合'S'中# 注意,如果列表中含有重复的元素,会被清除# 利用集合不重复的特性,可以为列表去重
# ================================# 示例bid = {"Hibari", "7565634", "5"}bid.update([5,5,5,6,7,8])print(bid)# 输出{'5', 5, 6, 7, 8, 'Hibari', '7565634'}# ================================
——————-删除———————
删除元素 :remove( )
删除元素 :discard( )

S.remove(value)S.discard(value)# 参数说明:# S 集合 【需要进行删除操作的集合】# value 值 【需要删除的元素】# 返回值:# S 集合 【返回删除完成后的集合】# remove() 无返回值 【删除的元素不存在时报错】# discard() 无返回值 【不会报错】
# ================================# 示例:remove()bid = {"Hibari", "7565634", "5"}bid.remove("7565634")print(bid)try:bid.remove("7565634")except KeyError:print("KeyErrer")# 输出{'Hibari', '5'}KeyErrer# ================================
# ================================# 示例:discard()bid = {"Hibari", "7565634", "5"}bid.discard("7565634")bid.discard("7565634")print(bid)# 输出{'Hibari', '5'}# ================================
随机删除 :pop( )

S.pop()# 参数说明:# S 集合 【需要进行删除操作的集合】# 返回值:# S 集合 【返回删除完成后的集合】# pop() 值 【返回被删除后的值】# 功能说明:# 随机删除一个元素
# ================================# 示例bid = {"Hibari", "7565634", "5"}for i in range(5):try:print("Delete:",bid.pop())except KeyError:print("Set = None")break# 输出Delete: 5Delete: 7565634Delete: HibariSet = None# ================================
——————-其他———————
长度查询 :len( )

len(object)# 参数说明:# object: 集合\字典(查询的字符串,或者序列)## 返回值:# len(): 整数(返回元素的个数)
# ================================# 示例bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}bid2 = {"5", "5", "5", "a"}print(len(bid))print(len(bid2))# 输出32# ================================
元素判断 :in \ not in (成员运算符)
# 返回值:# 布尔(如果元素在集合中返回True,否则返回False)# 功能说明:# 通过成员运算符可以判断某个元素是否在集合中
# ================================# 示例bid = {"Hibari", "7565634", "5"}print("Hibari" in bid)print("ID" in bid)# 输出TrueFalse# ================================
集合运算 :交并补
L 交 :intersection( )
L 并 :union( )
L 补 :difference( )
set1.intersection(set2) #交set1.union(set2) #并set1.difference(set2) #补# 参数说明:# set1 集合1# set2 集合2# 返回值:# intersection() 集合# union() 集合# differece() 集合
# ================================# 示例s1 = {1, 2, 3, 4}s2 = {3, 4, 5, 6}a = s1 & s2 # 交集b = s1 | s2 # 并集c = s1 - s2 # 差集d = s2 - s1print(a)print(b)print(c)print(d)# 输出{3, 4}{1, 2, 3, 4, 5, 6}{1, 2}{5, 6}# ================================
# ================================# 示例s1 = {1, 2, 3, 4}s2 = {3, 4, 5, 6}a = s1.intersection(s2)b = s1.union(s2)c = s1.difference(s2)d = s2.difference(s1)print(a)print(b)print(c)print(d)# 输出{3, 4}{1, 2, 3, 4, 5, 6}{1, 2}{5, 6}# ================================
