Python-Dictionary-创建字典的方式
2016-12-14 17:55
344 查看
字典
我们创建字典的方式有很多,根据需求不同,采用合适的方式才能够事半功倍。我使用的Python3.0 版本,所以较之2.X的版本,新增了解析式创建法。
1.{}
我称这个方法为一个花括号搞定法,此方法适合你知道字典中的内容已经是什么了,一次性的将字典创建出来。后期字典变化不频繁的情况。""" 1. 一个花括号搞定全部法 """ D={'name':'Bob','age':14,'sex':'male'} print(D)
输出:
{'name': 'Bob', 'age': 14, 'sex': 'male'}
2.D={}
当面对后期再一次次对字典中的字段进行添加的情况,我们先用一个空字典的方式,给D占一个字典的坑,然后再后面的程序中,一个个补上其中的内容。这就适合需要动态建立字段的情况。""" 2. 后期需要动态建立字典的字段 """ D={} D['name']='Bob' D['age']=14 D['sex']='male' print(D)
输出:
{'name': 'Bob', 'age': 14, 'sex': 'male'}
3.dict(key1=value1,key1=value2,…)
此方法使用起来比较方便,而且简单,代码量小~""" 3. dict(key1=value1,...)等号形式 """ D=dict(name='Bob',age=14,sex='male') print(D)
输出:
{'name': 'Bob', 'age': 14, 'sex': 'male'}
4.dict([(key1,value1),(key2,value2),…])
使用(key,value)pair的形式,来创建一个个映射关系对象。如果需要再程序运行的时候,把键和值逐步建成序列。
此方法还常结合zip函数来使用,把程序运行时候的动态获取到的键和值的不同列表合并在一起。
""" 4.dict([(key1,value1),(key2,value2),...]) """ D=dict([("name","Bob"),("age",14),("sex",'male')]) print(D)
输出:
{‘name’: ‘Bob’, ‘age’: 14, ‘sex’: ‘male’}
结合zip函数的使用方式
D=dict(zip(['name','age','sex'],['Bob',14,'male'])) print("zip way:",D)
输出
zip way: {'name': 'Bob', 'age': 14, 'sex': 'male'}
5.dict.fromkeys(key[,default])
根据seq提供的key值与value值创建一个新的字典。value值如果没有给出,默认为none。
如果所建的字典的键的value值都一样的话,简单得传入一个键列表,以及所有键对应得初始值。
""" 5.dict.fromkeys(key[,default]) 如果所建的字典的键的value值都一样的话,简单得传入一个键列表,以及所有键对应得初始值。 """ key_list=['name','age','sex'] D=dict.fromkeys(key_list,0) print("keylist:",key_list) print("Dictionary:",D)
输出:
keylist: ['name', 'age', 'sex'] Dictionary: {'name': 0, 'age': 0, 'sex': 0}
6.dict(iterator)字典解析表达式
在Python 3.0中,对比过去得2.X版本得一个很大得不同,就是字典得创建,支持解析表达式得方式。采用这个方式,调用dict()构造函数,传入一个迭代器对象。
D={k:v for (k,v) in zip(['name','age','sex'],['Bob',14,'male'])} print(D)
输入:
{'name': 'Bob', 'age': 14, 'sex': 'male'}
这个方式能够达到直接使用zip()函数一样的目的,但是看着比zip函数更加繁琐。
其实解析表达式使用的场景要比zip函数更多,更灵活更方便。
一大批例子来袭
1.D={k:k **2 for k in [1,2,3,4]} print(D)
输出
D={k:k **2 for k in [1,2,3,4]} print(D)
2.
D={c:c * 4 for c in 'SPAM'} print(D)
输出
{'S': 'SSSS', 'P': 'PPPP', 'A': 'AAAA', 'M': 'MMMM'}
3.
''' 还可以结合一些函数来使用 ''' D={k.lower():k+'!' for k in'HAPPY' } print(D)
输出
{'h': 'H!', 'a': 'A!', 'p': 'P!', 'y': 'Y!'}
4.可以达到初始化value的目的
''' 达到fromkeys 一样的效果 ''' D={k:"初始值" for k in ['sex','name','age']} print(D)
输出
{'sex': '初始值', 'name': '初始值', 'age': '初始值'}
字典解析:
字典解析还可以包括嵌套循环,以及if字句等等形式。相关文章推荐
- python创建字典多种方式
- Python - 创建字典的多种方式
- python创建字典多种方式
- python-多种字典创建方式
- Python字典 (dictionary)
- Python Dictionary 字典
- 各种常用Python字典应用方式详解
- python 从字典里取出内容,创建集合 dict -> set
- python 创建桌面快捷方式
- Python 字典(Dictionary)操作详解
- 从0开始学python:字典dictionary
- 深入学习Python内置数据类型之——字典(Dictionary)
- Python 字典(Dictionary)操作详解
- python创建和使用字典实例详解
- dictionary字典的初步介绍(一) python
- python字典合并哪种方式效率最高?
- python multiprocessing 两种创建方式
- PL/SQL基础编程之(十一)[表空间概述、说明、创建][本地管理和字典管理、切换管理方式]
- python中threading方式创建的线程的终止
- 深入学习Python内置数据类型之——字典(Dictionary)