python 打印字典长度_Python基础-字典

字典的创建

字典是存放一系列键值对的数据结构,对标js中的对象,也对标java中的map。

现实中的例子就是通讯录,根据这个人的名字就可以得到他的电话号码。

定义字典的写法跟js中定义对象是一样的,两边花括号,中间key:value,区别在于js定义对象的时候key可以不用引号。

person = {"Bob":"13113113111","Mary":"13113113112","Mark":"13113113113"}print(person)

打印结果:

{'Bob': '13113113111', 'Mary': '13113113112', 'Mark': '13113113113'}

我们还可以使用dict函数来创建字典:

person = dict(name="小明",age=18)print(person)

打印结果:

{'name': '小明', 'age': 18}

它还允许我们将其他序列转化成字典

item = [('name','小明'),('age',18)]

person=dict(item)print(person)

打印结果:

{'name': '小明', 'age': 18}

字典的基本操作

访问字典中的值

字典中的元素都是key-value的形式存放的,所以要访问某一个value,就要用到对应的key,写法是用中括号:

person = {'name' : '小明', 'age' : 18}print(person['name'])

打印结果:

小明

你还可以使用get方法来访问值:

person = {'name' : '小明', 'age' : 18}print(person.get('name'))

打印结果:

小明

他们的区别在于,使用get方法如果访问一个不存在的key,它会返回None,而使用中括号访问一个不存在的key,会报错。

还有一个有意思的方法 setdefault,它的作用是获取一个key对应的value,如果这个key存在,那么获取值,如果不存在,那么获取默认值,并往字典中插入这个key。

person = {'name' : '小明', 'age' : 18}

value= person.setdefault('sex','未知')print(value)print(person)

打印结果:

未知

{'name': '小明', 'age': 18, 'sex': '未知'}

获取字典长度

len方法几乎可以对任何数据进行长度计算,字典中每一对key-value就算做一个长度

person = {'name' : '小明', 'age' : 18}print(len(person))

打印结果:

2

添加键值对

字典是动态结构,可以自由添加键值对。

person = {'name' : '小明', 'age' : 18}

person['sex'] = '男'

print(person)

打印结果:

{'name': '小明', 'age': 18, 'sex': '男'}

修改字典中的值

修改和添加一样的,只不过如果你的key在字典中不存在,那么就添加,如果存在,那么就修改。

person = {'name' : '小明', 'age' : 18}

person['age'] = 15

print(person)

打印结果:

{'name': '小明', 'age': 15}

删除键值对

删除字典中的元素用del关键字,跟删除列表中的元素是一样的用法。

person = {'name' : '小明', 'age' : 18}del person['age']print(person)

打印结果:

{'name': '小明'}

检查key是否存在

person = {'name' : '小明', 'age' : 18}if('name' inperson):print('这个key是存在的')else:print('这个key是不存在的')

打印结果:

这个key是存在的

字典常用方法

清空字典内容 clear()

clear方法用于删除字典中的所有元素,是直接对原字典执行,方法本身不会有返回值。

person = {'name' : '小明', 'age' : 18}

person.clear()print(person)

打印结果:

{}

浅复制 copy()

copy方法返回一个新字典,包含的键值对跟原来的字典完全相同。但是它只是拷贝字典中的一级对象,对于第二级对象,它只是引用。

我们实验一下,让字典里面存列表,拷贝之后再修改列表中的值

x = {'name' : '小明', 'age' : [11,12,13]}

y=x.copy()

y['name'] = '大明'y['age'][1] = 100

print(x)print(y)

打印结果:

{'name': '小明', 'age': [11, 100, 13]}

{'name': '大明', 'age': [11, 100, 13]}

深复制 deepcopy()

from copy importdeepcopy

x= {'name' : '小明', 'age' : [11,12,13]}

y=deepcopy(x)

y['name'] = '大明'y['age'][1] = 100

print(x)print(y)

打印结果:

{'name': '小明', 'age': [11, 12, 13]}

{'name': '大明', 'age': [11, 100, 13]}

获取所有键 keys()

keys方法返回的是一个迭代器,可以用list方法将它转换成列表

person = {'name' : '小明', 'age' : 18}print(list(person.keys()))

打印结果:

['name', 'age']

所谓的迭代器,就是可以直接用来循环的对象

person = {'name' : '小明', 'age' : 18}for item inperson.keys():print(item)

打印结果:

name

age

获取所有值 values()

person = {'name' : '小明', 'age' : 18}print(list(person.values()))

打印结果:

['小明', 18]

弹出字典中的元素 pop()

弹出的意思其实就是 获取+删除 两个操作的组合。

person = {'name' : '小明', 'age' : 18}

value= person.pop('age')print(value)print(person)

打印结果:

18

{'name': '小明'}

遍历字典 items()

items方法返回一个字典视图的迭代器,包含了字典中所有的键值对,每个键值对都是以元组的形式存在

person = {'name' : '小明', 'age' : 18}

y=person.items()for item iny:print(item)

打印结果:

('name', '小明')

('age', 18)

如果你想进一步取里面的数据,也可以这么写:

person = {'name' : '小明', 'age' : 18}

y=person.items()for k,v iny:print(k + '---' + str(v))

打印结果:

name---小明

age---18

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值