Python学习-5(元组)

八:在这里插入图片描述
1.

'''可变序列  列表+字典'''
lst = [10,20,45]
print(id(lst))
lst.append(300)
print(id(lst))

'''不可变序列  字符串+元组'''
s = 'hello'
print(id(s))
s = s+'world'
print(id(s))
print(s)

#注:列表用:[],元组用:()

在这里插入图片描述

'''元组的创建方式'''
'''第一种创建方式--使用()'''
t = ('Python','world',98)
print(t)
print(type(t))
#注:使用()方式可以省略不写
t2 = 'Python','world',98
print(t2)
print(type(t2))

#t3 = ('Python')
#print(type(t3))    #'str'
'''注:只有一个元素的时候','必须加上,逗号不能省'''
t3 = ('Python',)
print(t3)
print(type(t3))  #turple元组

'''第二种创建方式,使用内置函数tuple()'''
t1 = tuple(('Python','world',98))
print(t1)
print(type(t1))

'''空元组的创建方式'''
'''空列表的创建方式'''
lst = []
lst1 = list()
#空字典
d = {
    
    }
d2 = dict()

#空元组
t4 = ()
t5 = tuple()

print('空列表',lst,lst1)
print('空字典',d,d2)
print('空元组',t4,t5)

3.列表和字典是可变的序列


t = (10,[20,30],9)
print(t)
print(type(t))
print(t[0],type(t[0]),id(t[0]))
print(t[1],type(t[1]),id(t[1]))
print(t[2],type(t[2]),id(t[2]))
'''尝试将t[1]修改为100'''
print(id(100))
#t[1] = 100  #元组是不允许修改元素的(因为不可变序列)
'''由于[20,30]列表,是可变序列,,所以可以向列表中添加元素
而且列表的内存地址不变'''
t[1].append(100)   #向列表中添加元素
print(t,id(t[1]))
#不可以修改元组的内容,当时可以修改元组中元素的添加内容(如果元素可变)

在这里插入图片描述

'''元组的遍历'''
t = ('Python','world','98')
'''第一种获取元组的方式,使用索引'''
print(t[0])
print(t[1])
print(t[2])
#print(t[3])    #索引超出范围
'''遍历元祖'''
for i in t:
    print(i)

5.

#集合的相关操作
#集合元素的判断操作
s = {
    
    10,20,30,405,60}
print(10 in s)  #True
print(10 not in s)  #False
'''集合元素的新增操作'''
'''注:
add一次只能添加一个元素
update一次至少添加一个元素
'''
s.add(80)
print(s)
'''增加集合元素'''
s.update({
    
    200,400,300})
print(s)
'''增加列表元素'''
s.update([100,98,8])
print(s)
'''增加元组元素'''
s.update((78,64,56))
print(s)

'''集合元素的删除操作'''
#remove
s.remove(100)
print(s)
#s.remove(500)   #remove在集合中没有时,会抛出异常
#discard
s.discard(500)  #discard在集合中没有时,不会抛出异常
s.discard(300)
print(s)
#pop
s.pop()
print(s)
s.pop()
print(s)
#pop(200)
'''注:pop()是不含参数的,否则会抛出异常
pop()删除的类似与队列,先进先出(删除的是前面的数)
不过,老师讲课的是随机删除
'''
#clear:直接将集合清空
s.clear()
print(s)

'''两个集合是否相等'''
s = {
    
    10,20,30,40}
s2 = {
    
    30,40,20,10}
print(s == s2)   #True
print(s != s2)   #False
#集合是无序存放的(内容相同即可)

'''一个集合是另一个集合的子集'''
s1 = {
    
    10,20,30,40,50,60}
s2 = {
    
    10,20,30,40}
s3 = {
    
    10,20,90}
print(s2.issubset(s1))  #True
print(s3.issubset(s1))  #False

'''一个集合是否是另一个集合的超集(子集反过来说)'''
print(s1.issuperset(s2))  #True
print(s1.issuperset(s3))  #False

'''两个集合是否含有交集'''
print(s2.isdisjoint(s3))  #False
s4 = {
    
    100,200,300}
print(s2.isdisjoint(s4))  #True

'''集合的数学操作'''
s1 = {
    
    10,20,30,40}
s2 = {
    
    20,30,40,50,60}
print(s1.intersection(s2))
print(s1 & s2)
#intersection()与&等价---交集操作
print(s1)
print(s2)
#交集之后的s1和s2操作没有发生变化

'''并集操作'''
print(s1.union(s2))
print(s1 | s2)
#union与| 等价---并集操作
#并集之后的s1和s2操作没有发生变化

'''差集操作'''
print(s1.difference(s2))
print(s1 - s2)
print(s1)
print(s2)

'''对称差集(就是两个集合减去交集)'''
print(s1.symmetric_difference(s2))
print(s1 ^ s2)
print(s1)
print(s2)

7.

#列表生成式
lst = [i*i for i in range(6)]
print(lst)

#集合生成式(无序的)
s = {
    
    i*i for i in range(10)}
print(s)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/pfl_327/article/details/108741943