python基础之字典

本文介绍了Python字典的用途,如通过姓名快速获取电话号码。讲解了字典的创建方式,包括直接创建和使用`dict`函数创建,强调了键必须为不可变类型。还列举了字典的基本操作,如`len()`,`get()`,`pop()`等,并提到了字典在Python3.6后的有序性变化。最后,提到了`fromkeys()`和`eval()`等方法在处理字典时的应用。
摘要由CSDN通过智能技术生成


注:该文档仅为博主个人学习理解,如有错误,欢迎评论区指正,谢谢。

为什么要用字典

举一个简单的例子:假设有如下名单

names = ['zhangsan','lisi','Alice','Beth']

列表list1分别存放他们的电话号码

list1 = [2351,1490,9482,4393]

对于列表我们想要拿到他们对于的电话号码,我们需要这样做

print(list1[names.index('lisi')])

如果我们想要直接通过名字拿到电话号码,就需要用到新的数据类型**字典**

对于字典,我们可以通过其特定的**(姓名),从而简便的得到对应的**(电话号码)

字典的创建

namephone = {'zhangsan':2351,'lisi':1490,'Alice':9482,'Beth':4393}

整个字典放于花括号之中,由键与其对应的值组成,这种键值对成为项(item),项与项之间用逗号分割

用函数dict创建

items = [('zhangsan',2351),('lisi',1490)]
d = dict(items)

创建的要求:

  • 数据本身是容器

  • 容器中的元素还必须是一个容器

  • 容器中的容器必须只有两个元素

  • 这两个元素的第一个元素必须是不可变数据类型

字典的特征

  • 字典是可变的容器型数据类型。(增删改)

  • Python3.6之前字典是无序的容器型数据类型;

  • Python3.6之后规定字典是有序的容器型数据类型(虽然字典有序,但是没有下标)

  • 字典中的元素是以键值对(key: value)形式存在的。

  • 字典中的键必须是不可变的数据类型,键是解释说明的作用。

  • 字典中的值可以是任意数据,值是最终想要的数据。

  • 字典以{}作为容器符号,元素使用逗号分隔,数据类型dict

基本的字典操作

  • len(d)返回字典d包含的项数

  • d[k]返回与k相关联的值

  • d[k] = v 将字典中的键k与v关联为值

  • del d[k] 删除键为k的所有项

  • k in d 检查字典中是否包含键为k的项

键的类型 :字典中的键只能为不可变的数据类型,如浮点数,字符串,元组

字典不支持拼接、重复等操作

将字符串格式设置功能用于字典

>>>print(f'zhangsan的电话号码是{d["zhangsan"]}')
zhangsan的电话号码是2351

字典中常用的方法

clear

删除字典所有项

d.clear()

copy

d1=d.copy()

formkeys

前面说了,用dict可以创建字典,但是dict创建字典有太多的限制了,

就比如说我们想要对一个列表创建字典,将列表中所有的元素都添加为字典的键,应该如何做呢?

我们可以使用formkeys

a = ['name','age']
print(dict.fromkeys(a))
<<< {'name': None, 'age': None}

a = ['name','age']
b = ['sm']
print(dict.fromkeys(a,b))
<<< {'name': ['sm'], 'age': ['sm']}

eval

能将字符串类型的任意数据,表达式转换为其原来的样子,让其具有原来的功能。

a = '{"name":"zhangsan"}'
print(eval(a))
<<< {'name': 'zhangsan'}

get

用d[key] 可以轻松得到字典中的值,但如果字典当如不存在key时候就会报错,而get方法就可以很好的解决这个问题了,当字典之中不存在该键时候,会返回None

items = [('zhangsan',2351),('lisi',1490)]
item = dict(items)
print(item.get(2))
<<< None

items

字典调用这个方法会返回一个所以关于该字典所以项的列表.

a = {'a':1,'b':2,'c':3,'d':4,'e':5}
b = a.items()
print(b)
<<< dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])

我们可以注意到该返回值是一个字典视图的特殊类型。它可以用来迭代,你也可以用来确定其长度以及对其执行成员资格检查。

keys

字典调用keys,会返回字典中所有的键,结果类型也为字典视图。同样也可以来确定其长度以及对其执行成员资格检查。同理values是返回所有的值组成的字典视图。

a = {'a':1,'b':2,'c':3,'d':4,'e':5}
b = a.keys()
c = len(b)
print(b)
print(c)
if "a" in a:
    print(1)
 <<<
dict_keys(['a', 'b', 'c', 'd', 'e'])
5
1

pop

可以用于获取与指定键相关的值,并将键值从该字典中删除。

a = {'a':1,'b':2,'c':3,'d':4,'e':5}
print(a.pop('a'))
print(a)
<<< 1
{'b': 2, 'c': 3, 'd': 4, 'e': 5}

当然还有update用一个字典的项来更新另外一个字典等等。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嚄825

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值