Python |
您所在的位置:网站首页 › 字典的创建方式 › Python |
字典
我们创建字典的方式有很多,根据需求不同,采用合适的方式才能够事半功倍。 我使用的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 |