文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python的字典 { }

2023-01-31 02:07

关注

Python的字典属于一种数据类型,我们可以把数据存到字典里面,字典使用大括号“{}”来定义。
比如现在要存储一个人的信息然后读取出来,就可以使用切片的方式来体现:

In [1]: info ='Tom 180 Male'

In [2]: info[1:3]
Out[2]: 'om'

In [3]: info[0:3]
Out[3]: 'Tom'

那么如果我们要存很多人的信息呢?

也许我们可以先把信息单个地分别存到一个列表里,然后再把他们合并,然而这样的方式在数据量很大的情况下是很麻烦的,如下所示:

In [4]: list1=['name','age']

In [5]: list2=['tom','20']

In [6]: list3=['mike','24']

In [7]: zip(list1,list2)
Out[7]: [('name', 'tom'), ('age', '20')]

In [8]: list1
Out[8]: ['name', 'age']

In [9]: list2
Out[9]: ['tom', '20']

In [10]: zip(list1,list3)
Out[10]: [('name', 'mike'), ('age', '24')]

字典是Python中唯一的映射类型(哈希表),其对象是可变的,但是字典的键必须使用不可变对象,一个字典中可以使用不同类型的键值,方法可以有:
keys()
values()
items();

首先我们可以创建一个空字典:

In [11]: dict={}

In [12]: type(dict)
Out[12]: dict

往里面定义数据如下:

In [13]: dict={'a':1,1:123}

In [14]: dict
Out[14]: {1: 123, 'a': 1}                #顺序是可变的,因为遵循哈希表

存入字典的数据类型应该用只读的,应保持哈希的结果不变:

In [15]: dict1={'a':1, 1:123, ('qq','wx'):'hello'}

In [16]: dict1
Out[16]: {1: 123, 'a': 1, ('qq', 'wx'): 'hello'}

查看字典的长度,可以看到我们刚刚定义的字典有3个元素:

In [17]: len(dict1)
Out[17]: 3

在ipython中使用tab键我们可以查看字典有多少种方法

In [18]: dict.
dict.clear       dict.has_key     dict.itervalues  dict.setdefault  dict.viewkeys
dict.copy        dict.items       dict.keys        dict.update      dict.viewvalues
dict.fromkeys    dict.iteritems   dict.pop         dict.values      
dict.get         dict.iterkeys    dict.popitem     dict.viewitems   

查看所有的keys值:

In [18]: dict1.keys()
Out[18]: ['a', 1, ('qq', 'wx')]

查看所有的values值,也会同样返回一个列表,里面是字典所存储的所有values值:

In [19]: dict1.values()
Out[19]: [1, 123, 'hello']

使用keys值查找values值:

In [16]: dict1
Out[16]: {1: 123, 'a': 1, ('qq', 'wx'): 'hello'}

In [22]: dict1.get(1)
Out[22]: 123

如果keys值不在所取的字典里,不会返回值,但是给定了keys,values的话,则会返回给的values值:

In [24]: dict1.get('b')

In [25]: dict1.get('b','c')
Out[25]: 'c'

判断keys是否存在于字典:

In [26]: 'v' in dict1
Out[26]: False

In [27]: 'a' in dict1
Out[27]: True

或者也可以这样判断:

In [28]: dict1.has_key('v')
Out[28]: False

In [29]: dict1.has_key('a')
Out[29]: True

使用items可以将字典返回为一个列表,成为列表之后就可以对其遍历,或者切片,然后得到想要的结果:

In [16]: dict1
Out[16]: {1: 123, 'a': 1, ('qq', 'wx'): 'hello'}

In [30]: dict1.items()
Out[30]: [('a', 1), (1, 123), (('qq', 'wx'), 'hello')]

往字典里面更新内容,或者把两个字典更新成一个字典:

In [35]: dict1
Out[35]: {1: 123, 'a': 1, ('qq', 'wx'): 'hello'}

In [36]: dict2
Out[36]: {'e': 3, 'q': 1, 'w': 2}

In [37]: dict.update(dict1,**dict2)

In [38]: dict
Out[38]: {1: 123, 'a': 1, 'e': 3, 'q': 1, 'w': 2, ('qq', 'wx'): 'hello'}

用for循环输出字典的keys和values:

In [47]: for k in dict1:
   ....:     print k,dict1[k]
   ....:     
a 1
1 123
('qq', 'wx') hello

或者先用items让字典返回一个列表,再for循环:

In [50]: dict1.items()
Out[50]: [('a', 1), (1, 123), (('qq', 'wx'), 'hello')]

In [51]: for k, v in dict1.items(): print k,v
a 1
1 123
('qq', 'wx') hello

字典练习

#!/usr/local/python3/bin/python

info={}
name=input("Please input a number : ")
age=input("Please input your age : ")
sex=input("Please input your sex(M/F) : ")

info['name']=name  #下标为name的存到info字典里面
info['age']=age
info['sex']=sex

#print(info)
#print(info.items())

for i,w in info.items():
    print('%s : %s' % (i,w))

运行情况如下:

Please input a number : zyy
Please input your age : 21
Please input your sex(M/F) : F
name : zyy
age : 21
sex : F
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯