Python基础语法06 set集合 列表生成式 迭代器

set集合:
本质上也是一个无序的且不重复的集合。
只存储了字典中的key,没有存储字典中的value。
set集合中的元素:
1.不重复
2.不可变
在set集合中如出现重复元素则会自动去重,若出现可变元素,它会直接报错。
set集合的创建
创建空的set集合
set1 = set()
set2 = set([1,2,3])
set3 = {1,2,3}

1.添加元素
set1.add(element)
element:必须是不可变类型
2.打碎插入元素
set1.update(iter)
将可迭代对象打碎插入到set集合中

3.删除元素
set1.remove(ele)
将ele移除

遍历元素
for x in set1:
pass

& 交集:两个set集合中都存在的元素
| 并集:两个set集合中的元素进行合并去除重复的元素

set1 = {1,2,3,(1,3,4)}
set1.add(“hello”)
set1.update(“hello”)
print(set1)
set2 = {1,2,33,44}

print(set1 & set2)
print(set1 | set2)

set1.remove(“hello”)

print(set1)

for x in set1:

print(x)

set2 = set()

set3 = set([1,2,3,3])

print(type(set2))

print(type(set1))

print(set3)

print(set1)

集合类型转换:
tuple1 = ((1,2),(3,4))
list1 = [[1,2],[3,4]]
set1 = {(1,2),(3,4)}
dict1 = {1:2,3:4}

将其它类型转为元组

当字典转为元组的时候只转了key

print(tuple(list1))

print(tuple(set1))

print(tuple(dict1))

#将其它类型转为list

当字典转为列表的时候只转了key

print(list(tuple1))

print(list(set1))

print(list(dict1))

其它类型转为set类型

当字典转为set的时候只转了key

print(set(list1))

print(set(tuple1))

print(set(dict1))

其它类型转为字典不能直接转换

若这个列表、元组、set是一个二维的并且元素是成对的,这时候我们将其转为字典

print(dict(list1))

print(dict(tuple1))

print(dict(set1))

列表生成式:

使用一行代码,生成一个序列
[1,2,3,4,…,100]
[1,9,25…,99*99]
‘’’
print(range(1,101))
print(list(range(1,101)))

列表生成式
本质:将for循环强制性写在一行,将结果写在最前面,使用[]将结果作为列表返回
[res for x in range(n) ]

list1 = [ xx for x in range(1,101)]
list2 = [ x
x for x in range(1,101,2)]
list3 = [ x*x for x in range(1,101) if x%2]
print(list1)
print(list2)
print(list3)

print(’\n’.join([’ ‘.join([’%s*%s=%-2s’ % (y, x, x*y) for y in range(1, x+1)]) for x in range(1, 10)]))

可迭代对象:

能直接作用于for循环的对象我们统称为可迭代对象。
python中常见可迭代对象:
1.str、list、tuple、set、dict、range
2.生成器
在python中一边循环一边计算的机制我们称之为生成器。
创建生成器的时候将列表生成式的中括号变成小括号。

可迭代对象:
重写了类函数__iter__

g = (x for x in range(1,11))
print(g)
print(type(g))
for x in g:
print(x)

总结:

列表生成式:
将for循环强制性写一行,把结果最前面,使用[]括起来

生成器:
将列表生成式的[] 变成()

可迭代对象:
能直接作用于for循环的对象就是可迭代对象

迭代器:
不但能够直接作用于for循环,还能被next函数调用的对象就是迭代器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值