07-元组-集合

元组的特性

  • 是序列表,有序
  • 元组数据值可以访问,不能修改,不能修改,不能修改
  • 元组数据可以是任意类型
  • 总之,list所有特性,除了可修改外,元组都具有
  • 也就意味着,list具有的一些操作,比如索引,分片,序列相加,相乘,成员资格操作等,一模一样
# 索引操作
t = (1,2,3,4,5)
print(t[4])
# 元组相乘
t = (1,2,3)
t = t * 3
print(t)

(1, 2, 3, 1, 2, 3, 1, 2, 3)
# 成员检测
t = (1,2,3)
if 2 in t:
    print("YES")
else:
    print("NO")
    
YES
# 元组遍历,一般采用for
# 1. 单层元组遍历
t = (1,2,3,"wang", "sss", "love")
for i in t:
    print(i, end=" ")
    

1 2 3 wang sss love
# 2. 双层元组的遍历
t = ((1,2,3), (2,3,4))

# 对以上元组的遍历,可以如下
# 1.

for i in t:
    print(i)
    
for k,m,n in t:
    print(k,'--',m,'--',n)


(1, 2, 3)
(2, 3, 4)
1 -- 2 -- 3
2 -- 3 -- 4

元组的函数

  • 基本跟list通用

集合-set

  • 集合是高中数学中的一个概念
  • 一堆确定的无序的唯一的数据,集合中每一个数据成为一个元素
# 集合的定义
s = set()
print(type(s))
print(s)

# 此时,大括号内一定要有值,否则定义出的是一个dict
s = {1,2,3,4,5,6,7}
print(s)


<class 'set'>
set()
{1, 2, 3, 4, 5, 6, 7}

集合的特征

  • 集合内数据无序,即无法使用索引和分片
  • 集合内部数据元素具有唯一性,可以用来排除重复数据
  • 集合内的数据,str, int, float, tuple,冰冻集合等,即内部只能放置可哈希数据

集合遍历操作

# for 循环
s = {4,5,"i", "sss", "wang"}

for i in s:
    print(i, end=" ")


i 4 5 wang love 

集合的内涵

# 普通集合内涵
# 以下集合在初始化后自动过滤掉重复元素
s = {23,223,545,3,1,2,3,4,3,2,3,1,2,4,3}
print(s)

# 普通集合内涵
ss = {i for i in s}
print(ss)

{545, 1, 3, 2, 4, 23, 223}
{545, 2, 3, 4, 1, 23, 223}
# 带条件的集合内涵
sss = {i for i in s if i % 2 == 0}
print(sss)

{2, 4}
# set:生成一个集合
l = [1,2,3,4,3,23,1,2,3,4]
s = set(l)
print(s)

{1, 2, 3, 4, 23}
# add:向集合内添加元素
s = {1}
s.add(334)
print(s)

{1, 334}
# pop 随机移除一个元素
s = {1,2,3,4,5,6,7}
d = s.pop()
print(d)
print(s)

1
{2, 3, 4, 5, 6, 7}
# 集合函数
# intersection: 交集
# difference:差集
# union: 并集
# issubset: 检查一个集合是否为另一个子集
# issuperset: 检查一个集合是否为另一个超集
s1 = {1,2,3,4,5,6}
s2 = {5,6,7,8,9}

s_1 = s1.intersection(s2)
print(s_1)

s_2 = s1.difference(s2)
print(s_2)

s_3 = s1.issubset(s2)
print(s_3)


{5, 6}
{1, 2, 3, 4}
False

frozen set:冰冻集合

  • 并冻和就是不可以进行任何修改的集合
  • frozenset是一种特殊集合
# 创建
s = frozenset()
print(type(s))
print(s)

<class 'frozenset'>
frozenset()

猜你喜欢

转载自www.cnblogs.com/zifeng001/p/10822720.html