" 在这边的世界里是藏不住眼泪的哦,想哭的时候谁都会忍不住的… "
# 在 Python 中字典用花括号来表示
# 键值对以 键:值 的方式写入花括号中、有多个键值对时用逗号分隔
dict1 = {
'010': 'beijing', '021': 'shanghai'}
# dict1是一个字典、包含二对键值对
'010': 'beijing'
'021': 'shanghai'
# 使用时、我们可以通过 '010' 快速查询到其对应的值是 'beijing'
# 语法
字典 = {
}
empty_dict = {
}
print(empty_dict)
# output:{}
# 语法
字典 = {
键1:值1, 键2:值2, ..., 键N:值N}
codes = {
'beijing': '010', 'shanghai': '021'}
print(codes)
# output:{'beijing': '010', 'shanghai': '021'}
# 语法
字典[键] = 值
codes = {
'beijing': '010', 'shanghai': '021'}
codes['wuhan'] = '022'
print(codes)
# output:{'beijing': '010', 'shanghai': '021', 'wuhan': '022'}
# 语法
值 = 字典[键]
codes = {
'beijing': '010', 'shanghai': '021'}
print(codes['beijing'])
# output:010
# 注意若键不存在则将抛出 KeyError 异常
codes = {
'beijing': '010', 'shanghai': '021'}
print(codes['b'])
# output:KeyError(键): 'b'
# 语法
值 = 字典.get(键)
codes = {
'beijing': '010', 'shanghai': '021'}
print(codes.get('beijing'))
print(codes.get('wuhan'))
print(codes.get('bwuhan','hhh'))
# output:010
# None
# hhh
# 语法
布尔值 = 键 in 字典
codes = {
'beijing': '010', 'shanghai': '021'}
print('beijing' in codes)
print('wuhan' in codes)
# output:True
# False
# 语法
键的列表 = 字典.keys()
codes = {
'beijing': '010', 'shanghai': '021'}
print(codes.keys())
# output:dict_keys(['beijing', 'shanghai'])
# 获取到的所有键是以迭代器的形式存在
# 用 list() 函数将迭代器转换为列表
codes = {
'beijing': '010', 'shanghai': '021'}
print(list(codes.keys()))
# output:['beijing', 'shanghai']
# 语法
值的列表 = 字典.values()
codes = {
'beijing': '010', 'shanghai': '021'}
print(codes.values())
# output:dict_values(['010', '021'])
# 获取到的所有值是以迭代器的形式存在
# 用 list() 函数将迭代器转换为列表
codes = {
'beijing': '010', 'shanghai': '021'}
print(list(codes.values()))
# output:['010', '021']
# 语法
值的列表 = 字典.items()
codes = {
'beijing': '010', 'shanghai': '021'}
print((codes.items()))
# output:dict_items([('beijing', '010'), ('shanghai', '021')])
# 获取到的所有键值对是以迭代器的形式存在
# 用 list() 函数将迭代器转换为列表
codes = {
'beijing': '010', 'shanghai': '021'}
print((list(codes.items())))
# output:[('beijing', '010'), ('shanghai', '021')]
# 语法
值 = 字典.pop(键)
codes = {
'beijing': '010', 'shanghai': '021'}
print(codes.pop('beijing'))
# output:010
# 如果 pop 一个不存在的键、则会抛出 KeyError 异常
codes = {
'beijing': '010', 'shanghai': '021'}
print(codes.pop('b'))
# output:KeyError: 'b'
# 如果你不希望异常抛出、可以传递 pop 方法的第二个参数作为默认值
# 默认值仅在键不存在时生效、此时方法将直接返回这个默认值、且跳过删除操作
codes = {
'beijing': '010', 'shanghai': '021'}
print(codes.pop('b',123))
# output:123
# 语法
del 字典[键]
codes = {
'beijing': '010', 'shanghai': '021'}
del codes['beijing']
print(codes)
# output:{'shanghai': '021'}
# 语法
键值二元组 = 字典.popitem()
codes = {
'beijing': '010', 'shanghai': '021'}
a = codes.popitem()
print(codes)
print(a)
# output:{'beijing': '010'}
# ('shanghai', '021')
# 语法
键值二元组 = 字典.clear()
codes = {
'beijing': '010', 'shanghai': '021'}
codes.clear()
print(codes)
# output:{}
# 语法
字典[键] = 值
codes = {
'beijing': '010', 'shanghai': '021'}
codes['beijing'] = '000'
print(codes)
# output:{'beijing': '000', 'shanghai': '021'}
# 如果键不存在、则创建键值对
codes = {
'beijing': '010', 'shanghai': '021'}
codes['wuhan'] = '000'
print(codes)
# output:{'beijing': '010', 'shanghai': '021', 'wuhan': '000'}
# 语法
字典.update(另一字典)
codes = {
'beijing': '010', 'shanghai': '021'}
codes.update({
'beijing':'000','tianjing':'888'})
print(codes)
# output:{'beijing': '000', 'shanghai': '021', 'tianjing': '888'}
# 我们可以将城市名和对应的区号保存在字典中
# 这样就可以通过城市名快速地查询到其区号、而不需要进行遍历
area_codes = {
'北京': '010',
'上海': '021',
'天津': '022',
'重庆': '023',
'沈阳': '024',
'南京': '025',
'武汉': '027',
'成都': '028',
}
print(area_codes['北京'])
print((area_codes.get('上海')))
# output:010
# 021
# 语法
# 注意创建空集合不能直接使用 {}、那样是表示空字典
# 而是使用 set()、这才表示空集合
集合 = set()
empty_set = set()
print(empty_set)
# output:set()
# 语法
集合 = {
元素1, 元素2, 元素N}
set1 = {
1,2,3}
print(set1)
# output:{1, 2, 3}
# 语法
集合.add(元素)
set1 = {
1,2,3}
set1.add(4)
print(set1)
# output:{1, 2, 3, 4}
# 向集合中添加重复元素时、会被去重处理
set1 = {
1,2,3}
set1.add(2)
print(set1)
# output:{1, 2, 3}
# 语法
集合.update(另一集合)
set1 = {
1,2,3}
set2 = {
3,4,5,6}
set1.update(set2)
print(set1)
# output:{1, 2, 3, 4, 5, 6}
# 语法
布尔值 = 元素 in 集合
set1 = {
1,2,3}
print(4 in set1)
# output:False
# 语法
元素 = 集合.pop()
set1 = {
1,2,3}
print(set1.pop())
# output:1
# 默认返回第一个元素
# 语法
集合.remove(元素)
set1 = {
1,2,3}
set1.remove(2)
print(set1)
# output:{1, 3}
# 如果要删除的元素不存在、则抛出 KeyError 异常
set1 = {
1,2,3}
set1.remove(4)
# output:KeyError: 4
# 语法
集合.discard(元素)
set1 = {
1,2,3}
set1.discard(4)
print(set1)
# output:{1, 2, 3}
# 语法
集合.clear()
set1 = {
1,2,3}
set1.clear()
print(set1)
# output:set()
# 列表、字典清空元素也是使用此方法
# 元组没有这个方法是因为元组不可变
%1
# 语法
# 可以通过 intersection 方法求多个集合的交集
交集 = 集合1.intersection(集合2, 集合3, 集合N)
set1 = {
1,2,3}
set2 = {
1,4,5}
set3 = {
1,6,7}
set4 = set1.intersection(set2,set3)
print(set4)
# output:{1}
%2
# 语法
# 也可以直接使用与运算符 & 来代替、完全等效
交集 = 集合1 & 集合2 & 集合N
set1 = {
1,2,3}
set2 = {
1,4,5}
set3 = {
1,6,7}
set4 = set1 & set2 & set3
print(set4)
# output:{1}
%1
# 语法
# 可以通过 union 方法求多个集合的交集
并集 = 集合1.union(集合2, 集合3, 集合N)
set1 = {
1,2,3}
set2 = {
1,4,5}
set3 = {
1,6,7}
set4 = set1.union(set3,set2)
print(set4)
# output:{1, 2, 3, 4, 5, 6, 7}
%2
# 语法
# 也可以直接使用或运算符 | 来代替、完全等效
并集 = 集合1 | 集合2 | 集合N
set1 = {
1,2,3}
set2 = {
1,4,5}
set3 = {
1,6,7}
set4 = set1 | set3 | set2
print(set4)
# output:{1, 2, 3, 4, 5, 6,}
%1
# 语法
# 可以通过 difference 方法求多个集合的交集
差集 = 集合1.difference(集合2, 集合3, 集合N)
set1 = {
1,2,3}
set2 = {
1,4,5}
set3 = {
1,2,7}
set4 = set1.difference(set3,set2)
print(set4)
# output:{3}
%2
# 语法
# 也可以直接使用运算符 - 来代替、完全等效
差集 = 集合1 - 集合2 - 集合N
set1 = {
1,2,3}
set2 = {
1,4,5}
set3 = {
1,2,7}
set4 = set1 - set3 - set2
print(set4)
# output:{3}
# 语法
布尔值 = 集合1.issubset(集合2)
set1 = {
1,2,3}
set2 = {
1,2}
print(set2.issubset(set1))
# output:True
# 语法
布尔值 = 集合1.issuperset(集合2)
set1 = {
1,2,3}
set2 = {
1,2,3}
print(set1.issuperset(set2))
# output:True
# 利用 len() 函数
set1 = {
1,2,3}
dict1 = {
'tianjing':'010','wuhan':'023'}
print(len(set1))
print(len(dict1))
# output:3
# 2