dictionary
字典是 Python 中的映射数据类型,由键-值(key-value)对构成。几乎所有类型的 Python 对象都可以用作键,不过一般还是以数字或者字符串最为常用。
值可以是任意类型的 Python 对象,字典元素用大括号({ })包裹。
>>> d={"haha":"12","xixi":"15","lele":"13"} ①
>>> d
{'lele': '13', 'xixi': '15', 'haha': '12'}
>>> d['haha'] ②
'12'
>>> d['haha']='16' ③
>>> d
{'lele': '13', 'xixi': '15', 'haha': '16'}
>>> d['dasha']='14' ④
>>> d
{'lele': '13', 'xixi': '15', 'haha': '16', 'dasha': '14'}
>>> del d['haha'] ⑤
>>> d
{'lele': '13', 'xixi': '15', 'dasha': '14'}
>>> d.clear() ⑥
>>> d
{}
>>> d['haha']=12 ⑦
>>> d
{'haha': 12}
首先我们创建了一个dictionary,有3个元素并将其赋值给d,每个元素都是一个key-value对,真个元素集合用大括号括起来。
'haha'是一个key,它所关联的值是通过d['haha']来引用的,为'12'
dictionary不能有重复的key值,给一个存在的key赋值会覆盖原有的值。即可认为是修改一个key所对应的value值。
在任何时候都可以加入新的key-value对。
注意:
dictionary 的 key 是区分大小写。
Dictionary 没有元素顺序的概念。说元素 “顺序乱了” 是不正确的, 它们只是序偶的简单排 列。
5. del 通过key从一个dictionary中删除独立元素。
6. clear 从一个 dictionary 中清除所有元素。注意空的大括号集合表示一个没有元素的 dictionary。
7. Dictionary 不只是用于存储字符串。Dictionary 的值可以是任意数据类型, 包括字符串, 整数, 对象, 甚至其它的 dictionary。在单个 dictionary 里, dictionary 的值并不需要全都是同 一数据类型, 可以根据需要混用和匹配。
keys,values,items函数
>>> d={"haha":12,"lele":"14","xixi":"17","Kimi":6}
>>> d
{'lele': '14', 'Kimi': 6, 'haha': 12, 'xixi': '17'}
>>> d.items() ①
[('lele', '14'), ('Kimi', 6), ('haha', 12), ('xixi', '17')]
>>> d.keys() ②
['lele', 'Kimi', 'haha', 'xixi']
>>> d.values() ③
['14', 6, 12, '17']
>>> [k for k,v in d.items()] ④
['lele', 'Kimi', 'haha', 'xixi']
>>> [v for k,v in d.items()] ⑤
['14', 6, 12, '17']
>>> ["%s=%s" %(k,v) for k,v in d.items()] ⑥
['lele=14', 'Kimi=6', 'haha=12', 'xixi=17']
>>> ":".join(["%s=%s" %(k,v) for k,v in d.items()])
'lele=14:Kimi=6:haha=12:xixi=17'
items 方法返回一个形如 (key, value) 的 tuple 的 list。这个 list 包括 dictionary 中所有的数据。
Dictionary 的 keys 方法返回一个所有键的 list。这个 list 没按 dictionary 定义的顺序输出 (记住, 元素在 dictionary 中是无序的), 但它是一个 list。
values 方法返回一个所有值的 list。这个 list 以 keys 返回的 list 顺序输出。
d.items() 的第一个元素是 ('lele', '14'), 所以在 list 解析的第一次遍历中, k 将为 'lele', v 将为 '14'。在本例中, 我们忽略了返回 list 中 v 的值, 而只包含了 k 的值, 所以这个 list 解析最后等于 params.keys()。
这里我们做着相同的事情, 但是忽略了 k 的值, 所以这个 list 解析最后等于 params.values()。
用一些简单的 字符串格式化 将前面两个例子合并起来 , 我们就得到一个包括了 dictionary 中每个元素的 key-value 对的 list。这个看上去有点象程序的 输出结果, 剩下的就只是将这个 list 中的元素接起来形成一个字符串了。
分割字符串
>>> d
{'lele': '14', 'Kimi': 6, 'haha': 12, 'xixi': '17'}
>>> ["%s=%s" %(k,v) for k,v in d.items()]
['lele=14', 'Kimi=6', 'haha=12', 'xixi=17']
>>> l=["%s=%s" %(k,v) for k,v in d.items()]
>>> s=":".join(l)
>>> s
'lele=14:Kimi=6:haha=12:xixi=17'
>>> s.split(":")
['lele=14', 'Kimi=6', 'haha=12', 'xixi=17']
>>> s.split(":",1)
['lele=14', 'Kimi=6:haha=12:xixi=17']
split 与 join 正好相反, 它将一个字符串分割成多元素 list。 注意, 分隔符 (“;”) 被完全去掉了, 它没有在返回的 list 中的任意元素中出现。
split 与 join 正好相反, 它将一个字符串分割成多元素 list。 注意, 分隔符 (“;”) 被完全去掉了, 它没有在返回的 list 中的任意元素中出现。