无序的容器并没有储存顺序(也许在内存地址上有顺序),所以不能使用序列容器的方法
字典 { 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"))
# 输出
Hibari
None
# ================================
# 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: True
Value: False
key: False
key: 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: Name
value: Hibari
key: UID
value: 7565634
key: Level
value: 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)
# 输出
Hibari
7565634
5
# ================================
# 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))
# 输出
3
2
# ================================
更多列表方法:
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: 5
Delete: 7565634
Delete: Hibari
Set = None
# ================================
——————-其他———————
长度查询 :len( )
len(object)
# 参数说明:
# object: 集合\字典(查询的字符串,或者序列)
#
# 返回值:
# len(): 整数(返回元素的个数)
# ================================
# 示例
bid = {"Name":"Hibari", "UID":"7565634", "Level":"5"}
bid2 = {"5", "5", "5", "a"}
print(len(bid))
print(len(bid2))
# 输出
3
2
# ================================
元素判断 :in \ not in (成员运算符)
# 返回值:
# 布尔(如果元素在集合中返回True,否则返回False)
# 功能说明:
# 通过成员运算符可以判断某个元素是否在集合中
# ================================
# 示例
bid = {"Hibari", "7565634", "5"}
print("Hibari" in bid)
print("ID" in bid)
# 输出
True
False
# ================================
集合运算 :交并补
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 - s1
print(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}
# ================================