Python列表和元组2

1.元组

  • 元组(tuple)与列表类似,也是按特定序列排列的元素组成,但它是不可变序列。
  • 元组中所有元素放在"()“中,两个相邻元素使用逗号”,"分隔
  • 元组是不可变序列,列表是可变序列,元组中的元素不可单独修改,列表可以任意修改
  • Python列表和元组1中序列通用操作也都适合元组,包括使用for循环

1.1 元组的创建和删除

  • 使用赋值运算符"=",创建元组
# 创建空元组
Type = ()
print(type(Type))  # 输出<class 'tuple'>

# 创建数值元组
Team = "1",1
print(Team)       # 输出('1', 1) 元组小括号也不是必须的,只要用一组逗号分隔,Python就认为是元组
print(type(Team)) # 输出<class 'tuple'>

#注意使用","
Ver = ("四月是你的谎言",)
Ver1 = ("四月是你的谎言")
print(type(Ver))  # 输出<class 'tuple'>
print(type(Ver1)) # 输出<class 'str'>
  • 使用del语句删除元组
# del tuplename 删除元组,在实际开发不常用,Python自带垃圾回收机制,自动销毁不用元组,
# 所以即使不手动删除,Python也会自动将其收回
Team = ("1",1)
del Team
print(Team)     # 报错NameError: name 'Team' is not defined说明已删除

1.2 访问元组元素

  • 通过索引(下标)访问元组的值,或使用print()函数输出全部元组
# 使用下标获取元组的值
Team = (1,"四月")
print(Team[0])       # 输出1
print(Team[3])       # 下标越界报错IndexError: tuple index out of range

1.3 修改元组

  • 元组是不可变序列,不能对单个元素进行修改,但元组也不能不能完全修改,可以对元组进行重新赋值
  • 可以对元组进行连接组合,连接内容必须都是元组,不能将元组和字符串,列表进行连接,不然会报错
# 对元组重新赋值
Team = (1,2)
Team = (3,4)
print(Team)       # 输出(3, 4)
# 对元组进行连接组合
player = ("四月","是")
player1 = ("你的","谎言")
print(player+player1)    # ('四月', '是', '你的', '谎言')

1.4 二维元组

t1 = ((1,2,3),(4,5,6))
# 遍历
for elem in t1:
    print(elem)                 
    for value in elem:
        print(value, end = ' ')
        print('')
'''
环获取到(1, 2, 3) 通过下一个for循环获取单个元素的值
其次获取(4, 5, 6),在词经过for循环获取剩余元素的值
输出:
(1, 2, 3)
1 
2 
3 
(4, 5, 6)
4 
5 
6
'''

1.5 序列的解包

# 元组解包
# 变量个数和元组个数一致
t1 = (11,20)
a,b = t1
print(a,b)        # 输出:11,20

# 变量个数和元素个数不同
a,*ti,c = 10,20,30,40
print(a,ti,c)      # 输出:10 [20, 30] 40

# 获取剩余元素
a,b,*c = 10,20,30,40
print(a,b,b)       # 输出:10 20 [30,40]

# *解包
print(*(1,2,3))    # 输出:1 2 3 

#range解包
a,b,b = range(3)   # a=0,b=1,c=2

#列表解包
a,*_b,c = [1,2,3,4,5] 
print(a,_b,c)       # 1 [2, 3, 4] 5

#字符串解包
a,b,c = '123' 
print(a,b,c) # a='1',b='2',c='3'

1.6 元组和列表的区别

  • 元组和列表都属于序列,按照一定顺序存放一组元素,类型不受限制,只要Python支持类型
  • 列表是可变序列,元素可以随时修改或删除;元组不可变序列,元组不可修改,除非被代替
  • 元组比列表访问处理速度快,如果值对列表进行访问,不修改建议使用元组
  • 列表不能作为字典的键,元组可以

2.作业

2.1 计算1000以内的素数

# 用n遍历 2值999之间的数
for n in range(2,1000):
    # 用i遍历n
    for i in (2,n):
        # 如果n能整除说明不是素数
        if n % i == 0:
            break
        # 不是素数就输出
        else:
            print(n,end=" ")

2.2 打印三角星,简化版

i = 1
num = eval(input("请输入一个整数:"))
while i < num:
    print(" " * (num - i),"*" * (2 * i - 1))
    i += 1
'''
输入4,打印:
    *
   ***
  *****
'''
发布了10 篇原创文章 · 获赞 1 · 访问量 845

猜你喜欢

转载自blog.csdn.net/Sky_Mazarine/article/details/103999008