【www.bbyears.com--python】
dict即字典,类似于数组,一个元素对应一个键值。例如:
d={"a":"zimu","1":"shuzi"}
print(d["a"])
返回字典d中a元素的值zimu。
判断一个key是否在字典中,可以使用key in dict的语句来查询
print("a" in d)
存在返回true,不存在返回false。
也可以使用get函数,格式为dict.get("key")如果存在则返回对应的键值,不存在返回none,但是这个函数方便的是如果不存在key可以直接给予赋值
print(d.get("a"))返回zimu;print(d.get("b"))返回none;print(d.get("b","tianjia"))返回tianjia
修改元素的键值可以使用dict[key]=value
删除元素使用del dict[key]
d={"a":"zimu","1":"shuzi"}
print(d)
del d["a"]
print(d)
清空整个字典的元素使用dict.clear()
#这里初始化一个dict
>>> d = {"a":1, "b":0, "c":1, "d":0}
#本意是遍历dict,发现元素的值是0的话,就删掉
>>> for k in d:
... if d[k] == 0:
... del(d[k])
...
Traceback (most recent call last):
File "
RuntimeError: dictionary changed size during iteration
#结果抛出异常了,两个0的元素,也只删掉一个。
>>> d
{"a": 1, "c": 1, "d": 0}
>>> d = {"a":1, "b":0, "c":1, "d":0}
#d.keys() 是一个下标的数组
>>> d.keys()
["a", "c", "b", "d"]
#这样遍历,就没问题了,因为其实其实这里遍历的是d.keys()这个list常量。
>>> for k in d.keys():
... if d[k] == 0:
... del(d[k])
...
>>> d
{"a": 1, "c": 1}
#结果也是对的
>>>
dict 两种遍历方式的性能对比
关于纠结dict遍历中带括号与不带括号的性能问题
for (d,x) in dict.items():
print "key:"+d+",value:"+str(x)
for d,x in dict.items():
print "key:"+d+",value:"+str(x)