乐之之

知而行乐,乐而行之,天道酬勤,学无止境。
集合与字典

一、创建集合

  • 创建集合使用{}或set(),但是如果要创建空集合只能使用set(),因为{}用来创建空字典。
s1 = {10,20,30,40,50}
print(s1)
# 集合里面的内容是随机打印出来的,也就是无序的。
s2 = {10,30,20,10,30,40,50}
print(s2)

s3 = set('abcdefg')
print(s3)

s4 = set()
print(type(s4))

s5 = {}
print(type(s5))

-----------------------------------------------
{50, 20, 40, 10, 30}
{50, 20, 40, 10, 30}
{'f', 'a', 'd', 'b', 'g', 'c', 'e'}
<class 'set'>
<class 'dict'>
  • 集合可以去掉重复数据:
  • 集合数据是无序的,故不支持下标

二、集合常见操作方法

(一)增加数据

1、add()

s1 = {10,20,30,40,50}
s1.add(100)
s1.add(10)
print(s1)

----------------------------
{50, 20, 100, 40, 10, 30}
  • 因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作

2、update()

  • 追加的数据是序列
s1 ={10,20}
# s1.update(100)
s1.update([100,200])
s1.update('abc')
print(s1)

-------------------------
{'c', 100, 200, 10, 'a', 20, 'b'}

(二)删除数据

1、remove()

  • 删除集合中的指定数据,如果数据不存在则报错。
s1 = {10,20}
s1.remove(10)
print(s1)

s1.remove(10)  # 删除过后,如果再次删除,就会出现报错
print(s1)

--------------------------------------
{20}
Traceback (most recent call last):
  File "E:\python_basics\第十节课-集合与字典\集合.py", line 38, in <module>
    s1.remove(10)
KeyError: 10

2、discard()

  • 删除集合中指定数据,如果数据不存在也不会报错。
s1 = {10,20}
s1.discard(10)
print(s1)

s1.discard(10)
print(s1)

-----------------------------
{20}
{20}

3、pop()

  • 删除集合中的最后一个数据,并返回这个数据。
s1 = {10,20,30,40,50}
a = s1.pop()
print(a)
print(s1)

--------------------
50
{20, 40, 10, 30}

(三)查找数据

  • in:判断数据在集合序列
  • not in:判断数据不在集合序列
set1 = {1,2,3,4,5,6}
if 25 not in set1:
    print("25不在集合里面")

else:
    print("25在集合里面")

-----------------------------
25不在集合里面

三、创建字典

  • 符号为大括号
  • 数据为键值对形式出现
  • 各个键值对之间用逗号隔开
# 有数据字典
dict1 = {'name':'张三','age':20,'gender':''}
# 空字典
dict2 = {}
dict3 = dict()
  • 注意:一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v

四、字典常见操作

(一)增加数据

  • 写法:字典序列[key]=值
  • 注意:如果key存在则修改这个key对应的值;如果key不存在则新增此键对。
dict1 = {'name':'张三','age':20,'gender':''}
dict1['name'] = '李四'
print(dict1)

dict1['id'] = 110
print(dict1)

----------------------------
{'name': '李四', 'age': 20, 'gender': ''}
{'name': '李四', 'age': 20, 'gender': '', 'id': 110}
  • 注意字典为可变类型

(二)删除数据

  • del()/del
  • 删除字典或删除字典中指定键值对
dict1 = {'name':'张三','age':20,'gender':''}
del dict1['gender']
print(dict1)
---------------------------------
 #{'name': '张三', 'age': 20}

del(dict1)
print(dict1)
  • clear()
  • 清空字典
dict1 = {'name':'张三','age':20,'gender':''}
dict1.clear()
print(dict1)

---------------------
{}

(三)修改数据

  • 写法:字典序列[key] = 值
  • 注意:如果key存在则修改这个key对应的值;如果key不存在新增此键值对。
dict1 = {'name':'张三','age':20,'gender':''}
dict1['name'] = '李四'
print(dict1)

------------------
{'name': '李四', 'age': 20, 'gender': ''}

(四)查找数据

  • key根据键查找值
dict1 = {'name':'张三','age':20,'gender':''}
print(dict1['name'])
print(dict1['id'])     # 报错

-------------------------
张三
  • get()
dict1 = {'name':'张三','age':20,'gender':''}
print(dict1.get('name'))
print(dict1.get('id',110))
print(dict1.get('id'))

--------------------------------
张三
110
None
  • keys()
  • 查找所有的键
dict1 = {'name':'张三','age':20,'gender':''}
print(dict1.keys())

----------------------
dict_keys(['name', 'age', 'gender'])
  • values()
  • 查找所有的值
t1 = {'name':'张三','age':20,'gender':''}
print(dict1.values())

-----------------
dict_values(['张三', 20, ''])
  • items()
dict1 = {'name':'张三','age':20,'gender':''}
print(dict1.items())

----------------------------
dict_items([('name', '张三'), ('age', 20), ('gender', '')])

五、字典的循环遍历

(一)遍历字典的key

dict1 = {'name':'张三','age':20,'gender':''}
for key in dict1.keys():
    print(key)
    
---------------------------------
name
age
gender

(二)遍历字典的value

dict1 = {'name':'张三','age':20,'gender':''}
for value in dict1.values():
    print(value)

----------------------
张三
20
  • 若想直接得到里面的值,示例如下。

dict1 = {'name':'张三','age':20,'gender':''}
for data in dict1.values():
    print(data)

-----------------
张三
20

(三)遍历字典的元素

dict1 = {'name':'张三','age':20,'gender':''}
for value in dict1.items():
    print(value)

-----------------------
('name', '张三')
('age', 20)
('gender', '')

 

posted on 2022-09-29 22:57  乐之之  阅读(20)  评论(0编辑  收藏  举报