Python

您所在的位置:网站首页 字典的创建方式 Python

Python

#Python| 来源: 网络整理| 查看: 265

字典

我们创建字典的方式有很多,根据需求不同,采用合适的方式才能够事半功倍。 我使用的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字句等等形式。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3