Day4:集合创建及操作方法、公共操作(运算符、公共方法、容器类型转换)、推导式

一、集合

1.1 创建集合

创建集合使⽤ {} 或 set() , 但是如果要创建空集合只能使⽤ set() ,因为 {} ⽤来创建空字典。

1 = {10, 20, 30, 40, 50}
print(s1)
s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2)
s3 = set('abcdefg')
print(s3)
s4 = set()
print(type(s4)) # set
s5 = {}
print(type(s5)) # dict

特点:

  1. 集合可以去掉重复数据;
  2. 集合数据是⽆序的,故不⽀持下标

1.2 集合常见的操作方法

1.2.1 增加数据

add():

#因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进⾏任何操作。
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1) # {100, 10, 20}

update(): 追加的数据是序列

s1 = {10, 20}
# s1.update(100) # 报错
s1.update([100, 200])
s1.update('abc')
print(s1)
1.2.2 删除数据

remove():删除集合中的指定数据,如果数据不存在则报错

s1 = {10, 20}
s1.remove(10)
print(s1)
s1.remove(10) # 报错
print(s1)

discard():删除集合中的指定数据,如果数据不存在也不会报错

s1 = {10, 20}
s1.discard(10)
print(s1)
s1.discard(10)
print(s1)

pop():随机删除集合中的某个数据,并返回这个数据。

s1 = {10, 20, 30, 40, 50}
del_num = s1.pop()
print(del_num)
print(s1)
1.2.3 查找数据

in:判断数据在集合序列
not in:判断数据不在集合序列

s1 = {10, 20, 30, 40, 50}
print(10 in s1)
print(10 not in s1)

在这里插入图片描述

二、公共操作

在这里插入图片描述

2.1 +

# 1. 字符串
str1 = 'aa'
str2 = 'bb'
str3 = str1 + str2
print(str3) # aabb
# 2. 列表
list1 = [1, 2]
list2 = [10, 20]
list3 = list1 + list2
print(list3) # [1, 2, 10, 20]
# 3. 元组
t1 = (1, 2)
t2 = (10, 20)
t3 = t1 + t2
print(t3) # (10, 20, 100, 200

2.1 *

# 1. 字符串
print('-' * 10) # ----------
# 2. 列表
list1 = ['hello']
print(list1 * 4) # ['hello', 'hello', 'hello', 'hello']
# 3. 元组
t1 = ('world',)
print(t1 * 4) # ('world', 'world', 'world', 'world')

2.1 in 或not in

# 1. 字符串
print('a' in 'abcd') # True
print('a' not in 'abcd') # False
# 2. 列表
list1 = ['a', 'b', 'c', 'd']
print('a' in list1) # True
print('a' not in list1) # False
# 3. 元组
t1 = ('a', 'b', 'c', 'd')
print('aa' in t1) # False
print('aa' not in t1) # True

三、公共方法

在这里插入图片描述

3.1 len()

# 1. 字符串
str1 = 'abcdefg'
print(len(str1)) # 7
# 2. 列表
list1 = [10, 20, 30, 40]
print(len(list1)) # 4
# 3. 元组
t1 = (10, 20, 30, 40, 50)
print(len(t1)) # 5
# 4. 集合
s1 = {10, 20, 30}
print(len(s1)) # 3
# 5. 字典
dict1 = {'name': 'Rose', 'age': 18}
print(len(dict1)) # 2

3.2 del()

# 1. 字符串
str1 = 'abcdefg'
del str1
print(str1)
# 2. 列表
list1 = [10, 20, 30, 40]
del(list1[0])
print(list1) # [20, 30, 40]

3.3 max()

# 1. 字符串
str1 = 'abcdefg'
print(max(str1)) # g
# 2. 列表
list1 = [10, 20, 30, 40]
print(max(list1)) # 40

3.4 min()

# 1. 字符串
str1 = 'abcdefg'
print(min(str1)) # a
# 2. 列表
list1 = [10, 20, 30, 40]
print(min(list1)) # 10

3.5 range()

注意:range()⽣成的序列不包含end数字。

# 1 2 3 4 5 6 7 8 9
for i in range(1, 10, 1):
 print(i)
# 1 3 5 7 9
for i in range(1, 10, 2):
 print(i)
# 0 1 2 3 4 5 6 7 8 9
for i in range(10):
 print(i)

3.6 enumerate()

enumerate(可遍历对象, start=0)

注意:start参数⽤来设置遍历数据的下标的起始值,默认为0。

list =['a','b','c','d','e']

for i in enumerate(list):
    print(i)

for key,value in enumerate(list,start=1):
    print(f'{key}={value}')

在这里插入图片描述

四、容器类型转换

4.1 tuple()

作⽤:将某个序列转换成元组

list1 = [10, 20, 30, 40, 50, 20]
s1 = {100, 200, 300, 400, 500}
print(tuple(list1))
print(tuple(s1))

4.2 list()

作⽤:将某个序列转换成列表

t1 = ('a', 'b', 'c', 'd', 'e')
s1 = {100, 200, 300, 400, 500}
print(list(t1))
print(list(s1))

4.3 set()

作⽤:将某个序列转换成集合

list1 = [10, 20, 30, 40, 50, 20]
t1 = ('a', 'b', 'c', 'd', 'e')
print(set(list1))
print(set(t1))

注意:

  1. 集合可以快速完成列表去重
  2. 集合不⽀持下标

五、推导式

推导式写法

# 列表推导式
[xx for xx in range()]
# 字典推导式
{xx1: xx2 for ... in ...}
# 集合推导式
{xx for xx in ...}

5.1 列表推导式

5.1.1 推导式样例

作⽤:⽤⼀个表达式创建⼀个有规律的列表或控制⼀个有规律列表。


# while循环创建列表
list=[]
i=0
while i < 10:
    list.append(i)
    i +=1
print(list)

# for 循环创建列表
list1 =[]
for i in range(10):
    list1.append(i)
print(list1)


# 列表推导式实现
list2 = [i for i in range(10)]
print(list2)

在这里插入图片描述

5.1.2 带if的推导式
''' 创建0-10的偶数列表'''

# 1.range()步长实现
list1 = [i for i in range(0,10,2)]
print(list1)

# 2.if实现
list2 = [i for i in range(10) if i % 2 ==0]
print(list2)
5.1.3 多个for循环实现列表推导式
'''需求:创建列表如下:
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
'''

list1 = [(i,j) for i in range(1,3) for j in range(3)]
print(list1)

在这里插入图片描述

5.1 字典推导式

字典推导式作⽤:快速合并列表为字典或提取字典中⽬标数据。

# 1.创建⼀个字典:字典key是1-5数字,value是这个数字的2次⽅。
dict1 = {i: i**2 for i in range(1,5)}
print(dict1) #{1:1,2:4,3:9,4:16}

# 2. 将两个列表合并为⼀个字典
list1 =['name','age','gender']
list2 = ['Tom',20,'man']
dict = {list1[i]:list2[i] for i in range(len(list1))}
print(dict)
# 3. 提取字典中⽬标数据
counts = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5}

# 需求:提取上述values大于等于3的字典数据
count1 = {key:value for  key ,value in counts.items() if value >=3}
print(count1)
print(type(count1))

在这里插入图片描述

5.1 集合推导式

'''需求:创建⼀个集合,数据为下⽅列表的2次⽅
list1 = [1, 1, 2]
'''
list5 =[1,1,2]
set1 = {i ** 2 for i in list5}
print(set1)
# 注意:集合有数据去重功能

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值