python字典--知识点总结
2015-07-19 20:57
751 查看
前言:
代码使用python2.7字典的创建:
方式1:
>>> d = {'a':2,'b':3,'c':5} >>> d {'a': 2, 'c': 5, 'b': 3}
方式2:
>>> d = {} >>> d['a'] = 2 >>> d['b'] = 3 >>> d['c'] = 5 >>> d {'a': 2, 'c': 5, 'b': 3}
方式3:
>>> d = dict((['a',2], ['b',3], ['c',5])) {'a': 2, 'c': 5, 'b': 3}
方式4:
>>> d = {}.fromkeys(('a','b','c'), 2) # fromkeys() 方法将值都设为了2 {'a': 2, 'c': 2, 'b': 2}
嵌套定义:
>>> d = {'letter':{'a':2, 'b':3, 'c':5}, 'number':[100,200,700], 'character':('*', '&', '^'), 'others':'happy'} >>> d {'character': ('*', '&', '^'), 'number': [100, 200, 700], 'letter':{'a': 2, 'c': 5, 'b': 3}, 'others': 'happy'}
添加:
方式1:
直接添加:>>> d = {'a':2, 'b':3} >>> d {'a': 2, 'b': 3} >>> d['c'] = 5 >>> d {'a': 2, 'c': 5, 'b': 3}
方式2:
用 setdefault() 方法。方式3:
用 update() 方法。方式4:
如果是添加多个元素,可以先将其转化成字典,再利用字典合并。删除:
方式1:
用 del 命令:>>> d = {'a':2, 'b':3, 'c':5} >>> del d['b'] >>> d {'a': 2, 'c': 5} >>> del d >>> d {}
方式2:
用 pop() 方法。方式3:
用 clear() 方法删除所有元素。排序:
>>> d = {'c':3, 'd':4, 'b':5, 'a':2} >>> sorted(d.iteritems(), key = lambda asd:asd[0], reverse = False) #对键进行递增排序 [('a', 2), ('b', 5), ('c', 3), ('d', 4)] >>> sorted(d.iteritems(), key = lambda asd:asd[0], reverse = True) #对键进行递减排序 [('d', 4), ('c', 3), ('b', 5), ('a', 2)] >>> sorted(d.iteritems(), key = lambda asd:asd[1], reverse = False) #对值进行递增排序 [('a', 2), ('c', 3), ('d', 4), ('b', 5)] >>> sorted(d.iteritems(), key = lambda asd:asd[1], reverse = True) #对值进行递减排序 [('b', 5), ('d', 4), ('c', 3), ('a', 2)]
字典的合并:
方式1:
利用items()方法获取所有元素,再将所有元素组成一个字典:>>> d1 = {'a':2, 'b':3, 'c':5} >>> d2 = {'a':10, 'd':100} >>> d = dict(d1.items() + d2.items()) >>> d {'a': 10, 'c': 5, 'b': 3, 'd': 100}
方式2:
利用 update() 方法(此方式比方式1快许多)。两个列表合并成字典:
>>> a1 = {'a', 'b', 'c'} >>> a2 = {2, 3, 5} >>> d = dict(zip(a1, a2)) >>> d {'a': 2, 'c': 3, 'b': 5} >>> d2 = dict(map(lambda x,y:[x,y], a1, a2)) >>> d2 {'a': 2, 'c': 3, 'b': 5}
字典的内置方法(绿色为常用方法):
:清除字典中的所有元素。
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.clear()
>>> d
{}
:复制字典的值,如果直接用 “=” 复制的是字典的地址。
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> c = d.copy()
>>> c
{‘a’:2, ‘b’:3, ‘c’:5}
:根据列表(或元组)seq作为键新建一个字典,值统一设为value。
>>> mykeys = (‘a’, ‘b’, ‘c’)
>>> d = dict.fromkeys(mykeys)
>>> d
{‘a’: None, ‘c’: None, ‘b’: None}
>>> d = dict.fromkeys(mykeys, 2)
>>> d
{‘a’: 2, ‘c’: 2, ‘b’: 2}
:找到键key对应的值,如果不存在则返回default。
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.get(‘b’)
3
>>> d.get(‘d’, 100)
100
:查询字典中是否含有键key,返回 True 或者 False
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.has_key(‘a’)
True
:返回字典的元素。
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.items()
[(‘a’, 2), (‘c’, 5), (‘b’, 3)]
iteritems():items()以列表的形式返回字典元素的键、值,而iteritems()以迭代器形式返回。python3已丢弃此方法。
viewitems():效果如下。python3已丢弃此方法
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.viewitems()
dict_items([(‘a’, 100), (‘c’, 5), (‘b’, 3), (‘d’, 200)])
:返回字典的所有键。
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.keys()
[‘a’, ‘c’, ‘b’]
iterkeys():keys()以列表的形式返回字典元素的键,而iterkeys()以迭代器形式返回。python3已丢弃此方法。
viewkeys():效果如下。python3已丢弃此方法。
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.viewitems()
dict_keys([‘a’, ‘c’, ‘b’, ‘d’])
:返回字典的所有值
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.values()
[2, 5, 3]
itervalues():values()以列表的形式返回字典元素的值,而itervalues()以迭代器形式返回。python3已丢弃此方法。
viewvalues():效果如下。python3已丢弃此方法。
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.viewitems()
dict_values([100, 5, 3, 200])
:将key所对应的元素“出栈”,并返回该key对应的值。
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.pop(‘b’)
3
>>> d
{‘a’: 2, ‘c’: 5}
:将字典的第一个元素出栈,但是由于字典是无序的,所有popitem()具有一定的随机性。结果返回一个列表,包含出栈的键、值。
>>> d = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d.popitem(‘b’)
(‘a’, 2)
>>> d
{‘c’: 5, ‘b’: 3}
:查找字典中是否有键为key的元素,如果没有则添加一个元素,键为key,值为value。
>>> d = {‘a’:2, ‘b’:3}
>>> d.setdefault(‘c’,5) # d 中不含键 ‘c’,则添加一个键 ‘c’,值为5
>>> d
{‘a’: 2, ‘c’: 5, ‘b’: 3}
>>> d.setdefault(‘b’,5) #如果 d 中包含键 ‘b’,则不添加
>>> d
{‘a’: 2, ‘c’: 5, ‘b’: 3}
:将字典dict2中的元素更新到dict中去。
>>> d1 = {‘a’:2, ‘b’:3, ‘c’:5}
>>> d2 = {‘a’:10, ‘d’:100}
>>> d1.update(d2) #等价于 d1 = dict[d1, **d2]
>>> d1
{‘a’: 10, ‘c’: 5, ‘b’: 3, ‘d’: 100}
各种报错信息:
TypeError: ‘builtin_function_or_method’ object is not iterable———–经常是因为调用方法,忘了添加括号()导致出错。转载请注明出处,谢谢!(原文链接:http://blog.csdn.net/bone_ace/article/details/46958199)
相关文章推荐
- python字典--知识点总结
- Python dict 字典
- python程序中文输出问题怎么解决
- Python生成验证码
- python re模块(一)
- python下的pillow安装
- PyCharm设置python新建文件指定编码为utf-8
- Python里面如何生成随机数?
- 用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别?
- Python里面search()和match()的区别?
- 如何用Python来进行查询和替换一个文本字符串
- 如何知道一个python对象的类型?
- 关于python的输出格式控制和函数format
- 《python核心编程》笔记——系统限制
- Python里面如何拷贝一个对象?
- 「python」: arp脚本的两种方法
- 「python」: arp脚本的两种方法
- python教程,文章list
- python教程,文章list
- Python如何实现单例模式?其他23种设计模式python如何实现?