python字典的方法有哪些,python字典的定义和操作

  python字典的方法有哪些,python字典的定义和操作

  它是python中五种基本数据类型之一。虽然它的赋值有点麻烦,但是用起来确实很方便。它使用键值对来存储数据。所谓键-值对,就是一个键对应一个值。如果稍后再次分配上一个键,第一个值将被覆盖。

  1:字典的创建

  我们知道,在python中,链表用[]表示,祖先用 ()表示,字典用 {} 表示。创建起来比list、ancestor和string更麻烦,但是只要记住键值对就可以正确地创建字典类型的变量。请参见下面的代码。

  D={A 3360 我是A , B 3360 1, C 3360 [1,2,3], D 3360 (1,2,3)}

  打印(d)

  打印(类型(d))

  打印(d[a])

  print(d[c][1])

  print(d[d][1])的输出结果如下:

  {a: 我是A , B 3360 1, C 3360 [1,2,3], D 3360 (1,2,3)}

  类别“字典”

  我是一个。

  注射毒品

  在第一行中,我们创建了一个名为d的字典类型,在创建它的时候,我们用英文引号将每个键值打印出来,键值可以是任何数据类型。比如A的键值是字符串,B的兼职是数字,C的键值是列表,D的键值是元组。

  第三行,输出整个字典,看看它是否和我们创建时一模一样。

  第四行,用type函数检查变量d的数据类型,输出时,dict,没错,dict的意思是字典,就像list的意思是列表一样。

  在第五行中,value输出字典中键A的键值。

  在第六行,输出C的键值中的第二个元素,C的键值是list类型,所以我们可以像操作list一样操作d[c]。

  七飞和六线差不多,只是键型改成元祖。

  2:修改字典

  创建字典时,我们为每个键指定了键值。如果我们以后想修改这个键的键值怎么办?也很简单,重新分配这个键就行了,如下:

  D={A 3360 我是A , B 3360 1, C 3360 [1,2,3], D 3360 (1,2,3)}

  打印(d[a])

  D[a]=我是修改过的A

  Print(d[a])输出结果如下:

  我是一个。

  我是改装过的a。

  第四行,我们输出原来A键的键值,第五行修改A的键值,第六行输出修改后A的键值。

  3:字典的删除

  如果我们想在创建字典后删除一个键或整个字典,那么我们可以使用del方法。

  D={A 3360 我是A , B 3360 1, C 3360 [1,2,3], D 3360 (1,2,3)}

  打印(d[a])

  del d[a]

  Print(d[a])输出如下

  我是一个。

  回溯(最近呼叫):

  模块中文件“e :/py project/miscellaneous examples/dict _ demo . py”的第8行

  打印(d[a])

  KeyError: a

  在上面的第四行中,我们首先输出A的键值,然后使用del删除键A。如果我们再次访问第六行中的键A,我们将报告错误的键Error: a

  如果我们想一次删除整本词典呢?也很简单。只需稍微修改第五行的代码,删除D后面的[a],直接跟在del后面的字典名。

  也可以使用字典的pop()方法删除。del方法在删除时没有返回值,Erpop会返回被删除键的键值。如果该项不存在,您还可以返回指定的错误消息,如下所示:

  D={A 3360 我是A , b: 1,

  ;c': [1, 2, 3], 'd': (1, 2, 3)}

  print(d['a'])

  print(d.pop('a', '123456'))

  print(d.pop('e', '这个键不存在,无法删除'))

  输入结果如下:

  我是a

  我是a

  这个键不存在,无法删除第三行输出a键的值

  第四行删除a键,并返回a键的值,因为这个键是存在于字典中的,所以不会返回后面的‘123456’

  第五行删除e键,而这个键不存在与字典中,所以返回后面的错误信息‘这个键不存在,无法删除’

  4:字典的清空

  有些时候,我们想要删除的不是整个字典,而只是字典里面的内容呢,这个时候,我们可以使用字典的clear方法,来对字典进行一个清空,操作如下

  

d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}

  d.clear()

  print(d)

  输出如下:

  {}

可以看出,此时d已经成为了一个空字典

  5:.get方法访问键

  字典['键名']这种方法虽然访问字典里面的某个键很方便,但也存在一些不足,如果这个键不存在,程序就会终止,阻碍程序的正常运行,如果想要返回正确的错误信息,并让程序继续运行下去,就可以用 .get 方法来访问字典里面的键,

  

d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}

  print(d.get('e', '这个键不存在'))

  print(d['e'])

  输入如下:

  这个键不存在

  Traceback (most recent call last):

   File "E:/py project/杂例/dict_demo.py", line 6, in <module>

   print(d['e'])

  KeyError: 'e'

第三第四行都访问了一个字典中不存在的键,而第三行用 .get 方法访问,返回设置好的错误信息,程序继续向下运行,第四行普通方法访问,程序报错、终止

   6:in 操作符

  在字典中,我们可以利用 in 操作符判断键是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false。看下面简单代码

  

d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}

  print('a' in d)

  print('e' in d)

输出结果如下:

  

True
False

  

第四行,‘a’这个键在字典中,返回True,第五行,‘’e这个键不在字典中,返回false

  7:获取字典中键值对

  现在我们已经知道,字典是以键值对(键和它对应的键值)的形式存储数据的,那么有没有什么方法让我们一次性获取一个字典中所有的键值对呢?可以用items()方法

  字典的 items() 方法以列表返回可遍历的(键, 值) 元组数组。意思就是返回一个列表,列表里面的每个元素都是元组,一个元祖就是字典里面的一对键值对。

  

d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}

  print(d.items())

  for i, j in d.items():

   print(i, j)

输出结果如下:

  

dict_items([('a', '我是a'), ('b', 1), ('c', [1, 2, 3]), ('d', (1, 2, 3))])
a 我是a
b 1
c [1, 2, 3]
d (1, 2, 3)

  

第三行,我们输出了items()的返回结果,可以清楚的看到每个元祖都是字典里面的一个键值对,可以使用list把它转换为一个列表,能帮助我们更好的访问里面的元素。

  第五行,利用items()方法帮助我们遍历一个字典,每次输出一个键和它对应的键值。

  8:获取键

  items()方法可以帮助我们一次性获取所有的键值对,但如果我们只想要获取键呢?可以使用 keys() 方法

  

d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}

  print(d.keys())

  l = list(d.keys())

  print(l)

  print(l[1])

输出结果如下:

  

dict_keys(['a', 'b', 'c', 'd'])
['a', 'b', 'c', 'd']
b

  

第三行的返回结果中,只有键,第四行把返回结果转换成了列表,第五行对这个列表进行输出,第六行输出列表中党的第二个元素,也就是字典的第二个键

  9:获取值

  既然能值获取到字典中的键,当然也能只获取字典中的字。就是values()方法

  

d = {'a': '我是a', 'b': 1, 'c': [1, 2, 3], 'd': (1, 2, 3)}

  print(d.values())

  l = list(d.values())

  print(l)

  print(l[1])

输出结果如下:

  

dict_values(['我是a', 1, [1, 2, 3], (1, 2, 3)])
['我是a', 1, [1, 2, 3], (1, 2, 3)]

  

与keys方法类似,只不过返回结果是字典中所有的键值而已。

  python学习网,免费的在线学习python平台,欢迎关注!以上就是python字典基本操作有哪些的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: