py学习打卡第四天(下)

本文详细介绍了Python字典的创建、更新、遍历、删除等操作,包括使用内置函数zip、dict创建,通过keys、values、items遍历,以及update、pop、popitem等方法。同时讲解了字典与集合的交互,如set的添加、删除和集合运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:字典

创建字典的方式;

1直接创建:d={'name':'zhangsan',age:18},不能使用相同的key和不同的value,否则后者会代替前者;

2内置函数:zip的使用

# coding:utf-8
l1 = [10, 20, 30, 40]
l2 = ['cat', 'dog', 'pet', 'zoo']
ans = zip(l1, l2)#ans得到的是一个zip对象,直接输出也不可看:<zip object at 0x000001D8E18C7C40>
print(ans)
#print(list(ans))#[(10, 'cat'), (20, 'dog'), (30, 'pet'), (40, 'zoo')]
d = dict(ans)
print(d)#{10: 'cat', 20: 'dog', 30: 'pet', 40: 'zoo'}

使用list可以把我们的对象转换成一个列表并输出,如果想要以字典形式输出,我们就得把他转成字典的形式;zip函数的作用是一个映射,意为把前面的东西当成key映射后面的value

3使用参数创建字典

# coding:utf-8
d = dict(cat=10, dog=20)#这里的cat是key,不需要引号
print(d)

4:字典属于序列,所以我们可以使用len来计算字典的长度,因为是一一对应的,所以len只计算key的长度,其实也是value的长度

# coding:utf-8
d = dict(cat=10, dog=20)#这里的cat是key,不需要引号
print(d)
print(len(d))#2

5:删除字典:del 字典变量

6:字典元素的遍历与访问

访问:

# coding:utf-8
d = {'hello':10, 'world':20, 'python':30}
print(d['hello'])
print(d.get('hello'))


#print(d['Java'])#报错
print(d.get('Java'))#输出None

这是两种获取python里元素的方法,可以根据key打印出value,但是如果输入里面没有的key的话,第一种方法我们使用的话会报错,而第二种会显示None表示没有;

7:使用元组获取key和value

# coding:utf-8
d = {'hello':10, 'world':20, 'python':30}

for i in d.items():
    print(i)
'''
('hello', 10)
('world', 20)
('python', 30)
'''#使用一个变量获取的是元组;

for i, j in d.items():
    print(i, j)
'''
hello 10
world 20
python 30
'''#使用两个变量获取的分别是key和value

这两种方法都可以遍历字典的内容, 实际运用的时候我们可以根据情况进行选择;

8:对字典的操作

创建字典冰箱其中添加关键字

# coding:utf-8
d1 = {'hello': 10, 'world': 20, 'python': 30}
d2 = {'are': 50, 'you': 60}

d1['how'] = '40'#字典的添加
print(d1)

d1.update(d2)#字典的合并
print(d1)#{'hello': 10, 'world': 20, 'python': 30, 'how': '40', 'are': 50, 'you': 60}

keys = d1.keys()
print(keys)#dict_keys(['hello', 'world', 'python', 'how', 'are', 'you'])
print(list(keys))#['hello', 'world', 'python', 'how', 'are', 'you']

使用keys获取的是字典里面所有关键字,直接打印的话得到的使字典的内部类型,字典键,专门用于表示键,这个时候我们可以使用内置函数将他转换列表或者元组进行输出,具体方法是使用list列表转换函数或者tuple元组转换函数进行转换之后输出

9:获取value的方法与上述同理

# coding:utf-8
d1 = {'hello': 10, 'world': 20, 'python': 30}
d2 = {'are': 50, 'you': 60}
d1.update(d2)#字典的合并

valuess = d1.values()
print(valuess)#dict_values([10, 20, 30, 50, 60])
print(tuple(valuess))#(10, 20, 30, 50, 60)

10:我们可以使用一种特殊的方法来获取字典的内容

# coding:utf-8
d1 = {'hello': 10, 'world': 20, 'python': 30}
d2 = {'are': 50, 'you': 60}
d1.update(d2)#字典的合并

itemss = d1.items()
print(list(itemss))#[('hello', 10), ('world', 20), ('python', 30), ('are', 50), ('you', 60)]
print(tuple(itemss))#(('hello', 10), ('world', 20), ('python', 30), ('are', 50), ('you', 60))

这时候items得到的是字典的内部类型,但是我们可以使用list或者是tuple转换,得到的是以元组形式存储在列表或者是元组的键值对

11:这个时候我们得到了上述的数据类型,我们可以使用dict函数将其反转回去,这对于py来说是非常方便的事情;

12:使用pop函数,我们来直接查看用法

# coding:utf-8
d1 = {'hello': 10, 'world': 20, 'python': 30}
d2 = {'are': 50, 'you': 60}
d1.update(d2)#字典的合并

print(d1.pop('hello'))
print(d1)

pop提供根据对应key只删除value,当然你也可以打印出来,或者直接选择删除;

13随机删除

我发现py提供了很多很多的随即删除函数,我不知道这些函数为什么能够存在,因为对于我所知的c与c++来说没有提供与随机删除这个词有关的函数(也可能是我孤陋寡闻)

# coding:utf-8
d1 = {'hello': 10, 'world': 20, 'python': 30}
d2 = {'are': 50, 'you': 60}
d1.update(d2)#字典的合并

print(d1.popitem())

你甚至可以把这个值赋给另一个变量存储

14:清空字典d1.clear()

15:我们说过在py里一切皆对象,就连一个变量,一个数据类型都具有bool值,所以我们理所当然可以对一个空字典查看其bool值,当然,肯定为空;

print(bool(d1))

16字典生成式:使用random随机生成,for循环的方法

# coding:utf-8

import random

d = {item: random.randint(1, 100) for item in range(4)}
print(d)

外层是四个有序的数,从0-3共四个,然后冒号后面的是value,我们使用随机函数生成,能生成1-100以内的数字;

17:映射发,上面已经给出生成方法,这里不再赘述;

18:set的使用,我们的{}放键值对叫字典,放单个值叫集合,集合严格有序;

19:集合的操作:

# coding:utf-8

a = {1, 4, 5, 6}
b = {1, 7}
a.add(2)#集合的添加
print(a)

#a.pop()#随机删除
#print(a)

a.remove(1)
print(a)#指定删除1

a.update(b)
print(a)

print(b)
b.clear()
print(b)#set()打印出来的这东西叫空集合,空字典是{}

20:set的高级用法,set是支持运算符的,也就是说,它不仅支持*法,还支持加法减法,且或异或都支持,这里不再详细展开讲,有兴趣的可以自己打开pycharm进行验证;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值