python_基础编程_字典、集合

字典类型:

一、什么是字典

字典:是py内置的数据结构之一,与列表一样是一个可变的序列,以键值对的方式存储数据,是一个无序的序列

二、字典的原理

实现原理:Py根据key查找value所在的位置

三、字典的创建

基本语句:1、使用花括号 score = {'张三' :100,'李四' = 98, '王五' = 45 }

                  2、使用内置函数 dict()       dict(name = 'jack' , age = 20)
 

# 第一种方式
score = {'哈哈':100,'李四': 98,'王五': 95}
print(score)
print(type(score))
# 第二种方式
student = dict(name = 'jack',age = 20)
print(student)

# 空字典
d = {}
print(d)
print(type(d))

四、字典的查询操作

字典中元素的获取:1、[] 方法

                                 2、get()方法

print(score['李四'])
print(score.get('戴晗'))
print(score['nana'])   #不存在就会报错
print(score.get('娜娜'))    #不存在就会显示None
print(score.get('娜娜',0))   #不存在指定一个值输出,代表不存在的默认值

五、字典的增、删、改操作

  • Key 的判断 :

in :指定的key在字典中存在就返回True

not in :指定的key 在字典中不存在就返回True

  • 字典元素的删除 del scores['张三']

  • 字典元素的新增 score ['nana'] = 90

print('娜娜' in score)   #元素的查找
print('娜娜' not in score)
del score['哈哈']   # 元素的删除
print(score)
score['哈哈'] = 99    #元素的增加
print(score)
score.clear()   #清空字典
score['哈哈'] = 90   #元素的修改
  • 获取字典视图的三个方法

1、keys():获取字典中所有的key

2、values():获取字典中所有value

3、items():获取字典中所有key,value

print(student.keys())
print(student.values())
print(student.items())
print(student.values())    #将所有的key组成的视图转成列表
  • 字典元素的遍历
score = {'哈哈':100,'李四': 98,'王五': 95}
for item in score:   #获取的是字典当中的key
    print(item,score[item],score.get(item))   #获取字典当中的值
'''
哈哈 100 100
李四 98 98
王五 95 95
'''

字典的特点:

1、字典中所有元素都是一个key - value 对,key不允许重复,value 可以重复

2、字典中的元素是无序的

3、字典中的key必须是不可变对象

4、字典也可以根据需要动态的伸缩

5、字典会浪费较大的内存,是一种使用空间换时间的数据结构

六、字典的推导式

内置函数zip():用于可迭代的对象作为参数,将对象中对应的元素打包成一个元祖,然后返回由这些元祖组成的列表。

print("-----字典生成式-------")
d = {item : random.randint(1,100) for item in range(4)}
print(d)

# 创建两个列表
lst = [1001,1002,1003]
lst2 = ['哈哈','娜娜','滴滴']
d = {key:value for key,value in zip(lst,lst2)}
print(d)

 

集合类型:

1、py中集合与数学集合的概念一致

2、py中集合是一个无序的不重复元素序列

3、集合中只能存储不可变数据类型

4、py中用 {} 定义

5、与列表,字典一样,都是py中的可变数据类型

一、创建方式

1、使用 {} 直接创建集合

s = {10,20,30}
print(s)

2、使用内置函数 set() 创建集合

s = set('daihan')
print(s)   #无序并且不重复   {'h', 'a', 'n', 'i', 'd'}
s2 = set([10,20,30])
print(s2)   #{10, 20, 30}
s3 = set(range(1,10))
print(s3)   #{1, 2, 3, 4, 5, 6, 7, 8, 9}

#创建一个空集合
d = set()

#集合的删除
del s3

二、集合类型的操作符

#集合的操作符
A = {10,20,30,40,50,44}
B = {30,11,20,5,50,1,9}
#交集
print(A & B)   #{50, 20, 30}
# 并集
print(A | B)   #{1, 5, 40, 9, 10, 11, 44, 50, 20, 30}
#差集
print(A - B)  #{40, 10, 44}   A 除去AB交集剩下的部分
#补集
print(A ^ B)  #{1, 5, 40, 9, 10, 11, 44}  就是除去交集剩下的部分

三、集合的相关操作方法

#集合的相关操作
A.add(100)
print(A)  #{50, 20, 100, 40, 10, 44, 30}
A.remove(50)
print(A)   #{20, 100, 40, 10, 44, 30}
A.clear()
print(A)    #set()

#集合的遍历
for item in B:
  print(item)
    # 1
  # 50
  # 20
  # 5
  # 9
  # 11
  # 30
for index ,item in enumerate(B):
 print(index,'--->',item)   
#0 ---> 1
# 1 ---> 50
# 2 ---> 20
# 3 ---> 5
# 4 ---> 9
# 5 ---> 11
# 6 ---> 30

#集合的生成式
s = {i for i in range(1,10)}
print(s)   #{1, 2, 3, 4, 5, 6, 7, 8, 9}

四、列表、元祖、字典、集合比较

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱空nnnn

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

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

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

打赏作者

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

抵扣说明:

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

余额充值