元组,集合

tuple

  • 不允许更改的列表
#tuple的创建
# 1、直接用小括号创建
ta = ()
# li = []
tb = (100)
tc = (100,)
print(type(tb))   #因为一个整数加上一个()其实没什么意义,需要加上一个逗号,表示这是一个元组
print(type(tc))

# 2、或者直接用逗号
td = 100,
te = 100, 200, 300
print(type(td))
print(type(te))

# 3、直接使用定义
tf = tuple()

# 可以使用tuple将list变为元组
a = [1,2,3,4,5]
b = tuple(a)
print(a,b)
<class 'int'>
<class 'tuple'>
<class 'tuple'>
<class 'tuple'>
[1, 2, 3, 4, 5] (1, 2, 3, 4, 5)

tuple的特征和list基本一致

  • 有序
  • 可以被访问,但不能被修改
  • 元素可以是任何类型
# tuple的索引
ta= ("asd",123,"暗色")
print(ta[1])
# 索引方式也还是中括号
print(ta[-1::-1])  #从最后一个开始打印,到最开始,并且是方向是反着
123
('暗色', 123, 'asd')
# 元组的相加,列表也可以
ta = 100,200,300
tb = ("qw",12,"阿瑟东")
tc = ta + tb
print(tc)
print(ta*2)
(100, 200, 300, 'qw', 12, '阿瑟东')
(100, 200, 300, 100, 200, 300)
# 成员检测
ta= 1,2,3,4,"1"
if "1" in ta:
    print("yes")

yes
# 元组可以放任何内容
#  - 元组可以放元组
#     元组嵌套
ta= ((1,2,3),("asd","阿瑟","as"),("asd","qwe","a"))
# 双层循环访问
for i,j,k in ta:
    print(i,j,k)
#  双层访问需要注意,每个元组的元素数量一样
1 2 3
asd 阿瑟 as
asd qwe a
# 常用元组函数
# len:取长度,不是只有元组的可以
# max/min:取最大值,取最小值   :比较大小只能在int中执行
#  oount:对某一个元素记数
# index:查找一个元素第一次出现的位置
a = [1,2,2,3,4,5]
print(len(a))
print(a.count(1))
6
1
# python中两个值互换的特殊用法
a = 1
b = 2
a,b = b,a
print(a,b)
2 1

集合

  • 跟高中概念一致
    • 无序
    • 不重复
    • 确定
# 集合创建,set

a = set()  #在这个
# b  =set(1,2,3,4,51,2,3,13,2)这种创建方法不行
b= [1,23,1,2,3,1,4,5]
print(set(b))

# 若要直接定义很多元素的集合,用大括号
c = {1,2,3,1,3,1,23}
print(c)

{1, 2, 3, 4, 5, 23}
{1, 2, 3, 23}
# 集合的生成式
a= {1,2,3,12,3,1,23,1}
b = {i for i in a if i % 2 == 0}

c = {i**2 for i in a}
d = {i*j for i in a for j in a}

print(len(a))
print(b)
print(c)
print(d)
5
{2, 12}
{1, 4, 9, 144, 529}
{1, 2, 3, 4, 36, 6, 69, 9, 12, 46, 144, 529, 276, 23, 24}
# 集合的内置函数
# len,max,min
# add:往集合中添加元素
a = {1,2,3,1,2,3,21}
print(a)
b = [1,2,3,4,5]
# print(b.add(6))  #列表没有add?
c = a.add(12)
print(a.add(7))# add函数不返回值,只作用于前面的集合
# add函数用完之后是一个none,但是原集合已经加上添加的元素了
print(c)
print(a)
{1, 2, 3, 21}
None
None
{1, 2, 3, 7, 12, 21}
# 删除操作
# clear   用法是两因素,不返回值
# remove,discard
# 其中discard不能作用与list
a= [1,2,3,4,5]
b= [2,3,4,5,6]
c= [3,1,2,3,5]
print(a.clear())
print(a)
# print(b.clear(3))不能剔除元素
print(b.remove(3))  #不返回值
print(b)
# print(c.discard(2))

None
[]
None
[2, 4, 5, 6]
a= {1,2,3,4,1,2,3}
b= {3,2,1,2,3,1,2,311,2,3,1,23}
c= {5,6,4,4,5,4,65,6,5}
d= {3,1,3,12,312,123,123,222}
a.clear()
print(a)
b.add(10010)
print(b)
c.remove(4)
print(c)

print(d.discard(12121))
print(d)
set()
{1, 2, 3, 23, 10010, 311}
{65, 5, 6}
None
{1, 3, 12, 312, 123, 222}

增添删减

  • 增加 两个列表或者元组,集合都可以直接相加

  • 添加,列表不能?

  • 删除,discard不能作用与list,其中,remove如果找不到删减的元素会报错,而discard不会,作用于集合

  • pop,随机删除,并且返回值,返回的值是删除的值

并且,都是不返回值的,或者叫做返回值为空(none)
# pop函数,随机删除一个元素,并弹出那个删除的值,所以返回的值是删除的值

a= [1,2,31,2,3,1]
a.pop()

1
# 集合的数学操作
# intersection  其交集
# difference   求差集  可以用减号
# union   并集  不可以用加号


a= {1,2,3,4,5,6}
b= {4,5,6,7,8,9}
print(a.intersection(b))

print(a-b)
print(a.difference(b))
# 这两个都是在a中去掉b的部分

print(a.union(b))


{4, 5, 6}
{1, 2, 3}
{1, 2, 3}
{1, 2, 3, 4, 5, 6, 7, 8, 9}

frozenset 冰冻集合

  • 把集合固定,变成了类似于tuple的形式,不能修改里面的元素
a= {1,2,3,4,1,2,3}
b= frozenset(a)
print(a,b)
{1, 2, 3, 4} frozenset({1, 2, 3, 4})
发布了21 篇原创文章 · 获赞 0 · 访问量 698

猜你喜欢

转载自blog.csdn.net/TXnsee/article/details/104400392
今日推荐