python 字典的一些笔记
# 一个字典
dict1 = {'a': 0, 'b': 0, 'c': 0, 'd': 0}
# 控制台输出
print(type(dict1), dict1)输出结果:<class 'dict'> {'a': 0, 'b': 0, 'c': 0, 'd': 0}
# 通过 key 访问 value
# 和列表和元组一样使用dict1[X],只是此时在方括号中放的是 key,而不是索引
print(type(dict1['a']), dict1['a'])输出结果:<class 'int'> 0
# 通过 key 修改 key-value 对 # 对存在的key-value对赋值,改变key-value对 dict1['a'] += 27 print(type(dict1['a']), dict1['a']) dict1['c'] = 'hu' print(type(dict1['c']), dict1['c'])
输出结果:<class 'int'> 27
<class 'str'> hu
# 通过 key 添加 key-value 对 # 对不存在的key赋值,就是增加key-value对 dict1['python'] = 'python' dict1['C'] = 'C语言' dict1['java'] = 'java' print(type(dict1), dict1)
输出结果:<class 'dict'> {'a': 27, 'b': 0, 'c': 'hu', 'd': 0, 'python': 'python', 'C': 'C语言', 'java': 'java'}
# 字典的遍历 输出的是字典的key key是什么类型就是什么类型 for item in dict1: print(type(item), item)
输出结果:
<class 'str'> a
<class 'str'> b
<class 'str'> c
<class 'str'> d
<class 'str'> python
<class 'str'> C
<class 'str'> java
# 使用del语句删除key-value对 del dict1['a'] del dict1['b'] del dict1['java'] print(type(dict1), dict1)
输出结果:<class 'dict'> {'c': 'hu', 'd': 0, 'python': 'python', 'C': 'C语言'}
# 通过 key 删除 key-value 对 这样只能删除一次 就必须break # 否则 RuntimeError: dictionary changed size during iteration # 所以 break 不能少 for item in dict1: print(type(item), item) if item == 'python': del dict1[item] break
输出结果:
<class 'str'> c
<class 'str'> d
<class 'str'> python
# 通过 key 判断指定 key-value 对是否存在 # 如果要判断字典是否包含指定的 key,则可以使用 in 或 not in 运算符--相对key 而言的 # 先看看字典有什么 print(type(dict1), dict1) print("'python' in dict1--->", 'python' in dict1) print("'c' in dict1--->", 'c' in dict1)
输出结果:
<class 'dict'> {'c': 'hu', 'd': 0, 'C': 'C语言'}
'python' in dict1---> False
'c' in dict1---> True
# clear() 用于清空字典中所有的 key-value 对, # 对一个字典执行 clear() 方法之后,该字典就会变成一个空字典。 print(type(dict1), dict1) dict1.clear() print(type(dict1), dict1)
输出结果:
<class 'dict'> {'c': 'hu', 'd': 0, 'C': 'C语言'}
<class 'dict'> {}
# 例子被清空了,那么我们在创建字典 # 1 dict1 = {'语文': 89, '数学': 92, '英语': 93} print(type(dict1), dict1) # 2 dict2 = {} print(type(dict2), dict2) # 3 dict3 = dict() print(type(dict3), dict3) # 4 cars = [['BMW', 8.5], ['BENS', 8.3], ['AUDI', 7.9]] dict4 = dict(cars) print(type(dict4), dict4) # 5 vegetables = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)] dict5 = dict(vegetables) print(type(dict5), dict5) # 6 # 使用关键字参数来创建字典 dict6 = dict(spinach=1.39, cabbage=2.59) print(type(dict6), dict6) # 7 # 使用元组作为dict的key dict7 = {(20, 30): 'good', 30: 'bad'} print(type(dict7), dict7)
知道上面创建的都是字典就对了,不用看结果
输出结果:
<class 'dict'> {'语文': 89, '数学': 92, '英语': 93}
<class 'dict'> {}
<class 'dict'> {}
<class 'dict'> {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
<class 'dict'> {'celery': 1.58, 'brocoli': 1.29, 'lettuce': 2.19}
<class 'dict'> {'spinach': 1.39, 'cabbage': 2.59}
<class 'dict'> {(20, 30): 'good', 30: 'bad'}
# 注意使用get方法获取字典值和[] 获取字典值的区别 # get方法获取字典值,尽管没有,不会报错,但是[] 会报错 print(type(dict4), dict4) print(dict4.get('BMW')) # 8.5 print(dict4.get('PORSCHE')) # None # print(dict4['PORSCHE']) # KeyError
输出结果:
<class 'dict'> {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
8.5
None
print(type(dict4.items()), dict4.items()) print(type(dict4.keys()), dict4.keys()) print(type(dict4.values()), dict4.values())
输出结果:
<class 'dict_items'> dict_items([('BMW', 8.5), ('BENS', 8.3), ('AUDI', 7.9)])
<class 'dict_keys'> dict_keys(['BMW', 'BENS', 'AUDI'])
<class 'dict_values'> dict_values([8.5, 8.3, 7.9])
for i in dict4.items(): print(type(i), i) print(type(i[0]), i[0]) print(type(i[1]), i[1])
自己灵活点,自己根据类型判断算了
输出结果:
<class 'tuple'> ('BMW', 8.5)
<class 'str'> BMW
<class 'float'> 8.5
<class 'tuple'> ('BENS', 8.3)
<class 'str'> BENS
<class 'float'> 8.3
<class 'tuple'> ('AUDI', 7.9)
<class 'str'> AUDI
<class 'float'> 7.9
这里我参考了C语言中文网