python字典总结

前言:

代码使用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}

字典的内置方法(绿色为常用方法):

  1. clear():清除字典中的所有元素。

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.clear()

    >>> d

    {}

  2. copy():复制字典的值,如果直接用 “=” 复制的是字典的地址。

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> c = d.copy()

    >>> c

    {‘a’:2, ‘b’:3, ‘c’:5}

  3. fromkeys(seq,value=None):根据列表(或元组)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}

  4. get(key,default=None):找到键key对应的值,如果不存在则返回default。

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.get(‘b’)

    3

    >>> d.get(‘d’, 100)

    100

  5. has_key(key):查询字典中是否含有键key,返回 True 或者 False

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.has_key(‘a’)

    True

  6. items():返回字典的元素。

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.items()

    [(‘a’, 2), (‘c’, 5), (‘b’, 3)]

  7. iteritems():items()以列表的形式返回字典元素的键、值,而iteritems()以迭代器形式返回。python3已丢弃此方法。
  8. viewitems():效果如下。python3已丢弃此方法

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.viewitems()

    dict_items([(‘a’, 100), (‘c’, 5), (‘b’, 3), (‘d’, 200)])

  9. keys():返回字典的所有键。

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.keys()

    [‘a’, ‘c’, ‘b’]

  10. iterkeys():keys()以列表的形式返回字典元素的键,而iterkeys()以迭代器形式返回。python3已丢弃此方法。
  11. viewkeys():效果如下。python3已丢弃此方法。

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.viewitems()

    dict_keys([‘a’, ‘c’, ‘b’, ‘d’])

  12. values():返回字典的所有值

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.values()

    [2, 5, 3]

  13. itervalues():values()以列表的形式返回字典元素的值,而itervalues()以迭代器形式返回。python3已丢弃此方法。
  14. viewvalues():效果如下。python3已丢弃此方法。

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.viewitems()

    dict_values([100, 5, 3, 200])

  15. pop(key):将key所对应的元素“出栈”,并返回该key对应的值。

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.pop(‘b’)

    3

    >>> d

    {‘a’: 2, ‘c’: 5}

  16. popitem():将字典的第一个元素出栈,但是由于字典是无序的,所有popitem()具有一定的随机性。结果返回一个列表,包含出栈的键、值。

    >>> d = {‘a’:2, ‘b’:3, ‘c’:5}

    >>> d.popitem(‘b’)

    (‘a’, 2)

    >>> d

    {‘c’: 5, ‘b’: 3}

  17. setdefault(key,value):查找字典中是否有键为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}

  18. update(dict2):将字典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}

各种报错信息:

  1. TypeError: ‘builtin_function_or_method’ object is not iterable———–经常是因为调用方法,忘了添加括号()导致出错。


注:以上信息均为个人总结,如有缺漏、错误 或者任何有待完善的地方,欢迎指正!不胜感激!

版权声明:转载请注明出处,谢谢!

时间: 2024-07-29 12:50:16

python字典总结的相关文章

python 字典有序无序及查找效率,hash表

刚学python的时候认为字典是无序,通过多次插入,如di = {}, 多次di['testkey']='testvalue' 这样测试来证明无序的.后来接触到了字典查找效率这个东西,查了一下,原来字典在python内部是通过哈希表的顺序来排的,做了一些测试,比如di = {1:1,3:3,2:2,4:4,5:5} ,无论怎么改变键值对的顺序,print di 总是会{1: 1, 2: 2, 3: 3, 4: 4, 5: 5}.所以看起来当插入di['key']='value'时,这组键值对有时

Python 字典(Dictionary) get()方法

描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 key -- 字典中要查找的键. default -- 如果指定键的值不存在时,返回该默认值值. 返回值 返回指定键的值,如果值不在字典中返回默认值None. 实例 以下实例展示了 get()函数的使用方法: #!/usr/bin/python dict = {'Name': 'Zara', 'A

Python字典高级使用方法汇总

Python字典高级使用方法汇总 字典(dictionary)是python中的一种非常灵活和强大的数据结构,可以完成很多操作.本文总结了一些除了基本的初始化.赋值.取值之外的常用的字典使用方法. 字典基础参考: [1]:http://www.w3cschool.cc/python/python-dictionary.html [2]:http://www.111cn.net/phper/python/56355.htm [3]:http://skyfen.iteye.com/blog/5675

python字典介绍

Python  字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必. 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组. 一个简单的字典实例: dict = {'Alice': '2341', 'Beth': '9102'

Python 字典(Dictionary) setdefault()方法

描述 Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法: dict.setdefault(key, default=None) 参数 key -- 查找的键值. default -- 键不存在时,设置的默认键值;存在则不设置. 返回值 该方法没有任何返回值. 实例 以下实例展示了 setdefault()函数的使用方法: #!/usr/bin/pytho

Python字典增删操作技巧简述

Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些基础应用.比如今天我们为大家介绍的Python字典的相关操作,就是我们在学习过程中需要熟练掌握的技巧. Python字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成.字典的键必须是不可改变的类型,如:字符串,数字,tuple:值可以为任何Python数据类型. 1.新建Python字典 >>> dict = {} #新建一个空字典 >>>

Python字典方法copy()和deepcopy()的区别

1 from copy import deepcopy # import deepcopy模块 2 d = {} 3 d['name'] = ['black', 'guts'] # d = {'name': ['black', 'guts']} 4 c = d.copy() # c = {'name': ['black', 'guts']} 5 dc = deepcopy(d) # dc = {'name': ['black', 'guts']} 6 d['name'].append('whit

<转>python字典排序 关于sort()、reversed()、sorted()

一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a','have','I'])) #['I', 'have', 'a', 'dream'] 2.让人糊涂的sort()与sorted() 在Python 中sorted是内建函数(BIF),而sort()是列表类型的内建函数list.sort(). sorted() sorted(iterable[,

python 字典排序 关于sort()、reversed()、sorted()

一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a','have','I'])) #['I', 'have', 'a', 'dream'] 2.让人糊涂的sort()与sorted() 在Python 中sorted是内建函数(BIF),而sort()是列表类型的内建函数list.sort(). sorted() sorted(iterable[,

Python字典和集合

1. 字典字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.只含不可变类型元素的元组(1,2,3,'abc').实现__hash__()方法的自定义对象(因为__hash__()须返回一个整数,否则会出现异常:TypeError: an integer is required).可以用ha