python:元组

1 介绍

1.1 元组的核心特点是:不可变序列。
1.2 元组的访问和处理速度比列表快。
1.3 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。

2 创建

2.1 小括号()

2.1.1 小括号创建元组

a = (10,20,30)

2.1.2 小括号可以省略

a=10,20,30
print(a)
print(type(a))
"""
输出为:
(10, 20, 30)
<class 'tuple'>
"""

2.2 tuple()

注意()生成元组和tuple生成元组的区别

a = ("abc")
b = tuple("abc")
c = tuple(range(10))
d = tuple([1, 2, 3])
print(a)
print(b)
print(c)
print(d)
"""
输出为:
abc
('a', 'b', 'c')
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
(1, 2, 3)
"""

2.3 生成器推导式

2.3.1 生成器推导式创建元组

列表 推导式直接生成列表对象

t1 = [x for x in range(10)]
print(t1)
print(type(t1))
"""
输出为:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
<class 'list'>
"""

生成器推导式使用 小括号 生成的不是列表也 不是元组 ,而是一个生成器对象。

t2 = (x for x in range(10))
print(t2)
print(type(t2))
t3 = tuple(t2)
print(t3)
print(type(t3))
"""
输出为:
<generator object <genexpr> at 0x0000023FF4CCF2E0>
<class 'generator'>
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
<class 'tuple'>
"""

t4 = list(t2)
print(t4)
"""
输出为:
[]
#生成器对象只能访问一次元素。第二次就为空了。需要再生成一次
"""

2.3.2 生成器对象用__next__() 遍历

t2 = (x for x in range(10))
print(t2)
print(type(t2))
print(t2.__next__())
print(t2.__next__())
print(t2.__next__())
t3 = tuple(t2)
print(t3)
"""
输出为:
<generator object <genexpr> at 0x000001C61831F2E0>
<class 'generator'>
0
1
2
(3, 4, 5, 6, 7, 8, 9)
"""

3 访问

访问元组返回的对象仍然是元组对象

a = tuple("abcde")
#索引访问
print(a[0])
#切片访问
b = a[1:3]
print(b)
print(type(b))
"""
输出为:
a
('b', 'c')
<class 'tuple'>
"""

4 排序

列表关于排序的方法 list.sorted()是修改原列表对象, 元组 没有该方法。如果要对元组排序,只能使用内置函数sorted(tupleObj),并生成新的列表对象

a = tuple("abcde")
b = sorted(a)
print(b)
print(type(b))
"""
输出为:
['a', 'b', 'c', 'd', 'e']
<class 'list'>
"""

5 zip

a = [10, 20, 30]
b = [40, 50, 60]
c = [70, 80, 90]
d = zip(a, b, c)
print(d)
print(type(d))
print(list(d))
"""
输出为:
<zip object at 0x0000022B3756C200>
<class 'zip'>
[(10, 40, 70), (20, 50, 80), (30, 60, 90)]
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值