字典:当索引不好用时2
字典事实上不是BIF而是工厂函数
常用的字典方法:
初始化一个字典:fromkeys
用法:
dict1.fromkeys((1,2,3),"wuyaling")
注意:这种用法只会提供一个返回值,仍旧需要赋值,正确操作应该是“dict1=…………”
访问字典:keys(),values(),items()
- keys()获取键
- values()获取值
- items()同时获取键值信息并以元组的形式返回
注意:括号中不能带参数
用法:
dict1=dict1.fromkeys(range(2),"wuyaling")
for each in dict1.keys():
print(each)
输出值为:
0
1
同理,将其中的keys换成其他方法:
- 换成values():返回值为"wuyaling"\n"wuyaling"\n"wuyaling"(此处用转义符代替换行了,实际上是每个键一行)
- 换成items():返回值为(0, 'wuyaling')\n(1, 'wuyaling')(同上)
- 访问字典中某个项的方法:dictname[id]或者dictname.get(id)
区别:前者如果输入不存在的键,会报错,后者如果输入不存在的键,返回一个空值(即NoneType)
扩展:get方法其实有两个参数,如果使用例如dictname.get(id,string),那么在返回值为none的时候会自动显示第二个参数中的字符串
回顾:如果不会用get方法,代码还得写,那该怎么弄呢?这时候就要使用成员操作符了。
代码如下:
dict1=dict1.fromkeys(range(2),"wuyaling")
if 2 in dict1 = True:
print("真")
else:
print(“假")
彻底删除一个字典:del
del dictname
清空一个字典:clear()
dictname.clear()
浅拷贝:copy()
注意:浅拷贝是在内存中开辟了新的内存空间之后进行复制,拷贝原字典的更改对于浅拷贝之后的字典无影响
弹出:pop(id)和popitem():
和列表中的pop()原理类似,弹出后删除原字典中的对应键值
区分:pop()只返回值不返回键,而popitem()同时返回键和值并以元组的形式打包(但是不能够选择pop哪个,只能pop字典中顺数最后一个,pop()则可以自由选择)
注意:字典中没有顺序概念