python数据类型之【元组】、常用方法、元组和列表的区别、各种名词解释(可迭代对象、序列、不可变数据类型)、元组加列表上、元组成员加列表上

本文详细介绍了Python中元组的概念、创建方式及其与列表的区别,并演示了元组的基本操作和使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:

1可迭代对象:只要是能用for循环遍历的就是可迭代对象。比如:那五个:列表、元组、集合、字典、字符串。

2、序列一块可以存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(也就是索引)访问它们。即:只要是有索引的就是序列。比如:列表、元组、字符串。

3、可变数据类型:列表、集合、字典。(也就是不可哈希,因为它们在改变值的同时,却没有改变id。)

4、不可变数据类型数字(数值型)、元组、字符串。(也就是可哈希,就是说这个对象的哈希值在其生命周期内一直保持不变。)

5、元组类似一个只读列表,列表中的方法只要不涉及到成员值的修改,那么这些方法元组都能用。

6、创建一个只有一个成员的元组,成员值后面要加逗号

例如:tuple1 = 1,  或  tuple1 = (1,)

一、元组——tuple

元组可以理解为一个只读的列表只要不涉及到修改成员的值,所有适用列表的方法,元组也通用。即:元组的元素不能修改,也就不能进行增删改、排序的操作。因为排序会涉及值位置的改变。

元组用( )来定义。()也可以省略不写,但是,只要当元组中只有一个成员时,不管有没有括号,成员后面必须加逗号。否则结果就是个字符串。

例如:定义只有一个元素的元组、定义有多个元素的元组。

tuple0 = ()  # 定义一个空元组,名字叫tuple0
tuple1 = (1, 2, "张三")  # 定义一个元组,有3个成员
tuple2 = 1, 2, "张三"   # 同上
tuple3 = 1,    # 元组中只要一个值,后面必须加逗号
tuple4 = (1,)   # 同上
print(tuple0)
print(tuple1)
print(tuple2)
print(tuple3)
print(tuple4)


结果:
()
(1, 2, '张三')
(1, 2, '张三')
(1,)
(1,)

例如:定义一个成员时,后面么加逗号。

tuple1 = "苹果",  # 这是一个元组
tuple2 = "苹果"   # 这是字符串
tuple3 = ("苹果")  # 这也是字符串,一个不符合规范的字符串
print(tuple1)
print(tuple2)
print(tuple3)

结果:
('苹果',)
苹果
苹果

二、元组的常用方法

与列表类似,不同的是,元组的内容不能修改,所以也就没有了增加、删除、修改、排序等的相关方法。即:元组只有查看、count、index、公共方法,以及遍历元组。

查看元组的所有方法:结果可知,常用的有count、index。

print(dir(tuple))  # 查看元组所有的方法

结果:
['__add__', '__class__', '__contains__', '__delattr__',
 '__dir__', '__doc__', '__eq__', '__format__',
 '__ge__', '__getattribute__', '__getitem__', 
'__getnewargs__', '__gt__', '__hash__', '__init__', 
'__init_subclass__', '__iter__', '__le__', '__len__',
 '__lt__', '__mul__', '__ne__', '__new__', '__reduce__',
 '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', 
'__sizeof__', '__str__', '__subclasshook__',
 'count', 'index']


1、查看

元组名[索引]——得到该索引上的成员值,但是不能修改该值。

tuple1 = ("苹果", "香蕉", "梨")
print(tuple1[0])  # 查看第一个元素

结果:
苹果

2、count(值)

3、index(值,开始查找的索引)

tuple1 = ("苹果", "香蕉", "梨", "苹果")

print(tuple1.count("苹果"))  # 查看苹果出现几次
print(tuple1.index("苹果", 1))  # 从下标1开始查找苹果,结果返回苹果的下标

结果:
2
3

4、公共方法

tuple1 = (3, 6, 2, 7, 9)
print(len(tuple1))
print(max(tuple1))
print(min(tuple1))
print(3 in tuple1)  # 3在里面吗?
print(3 not in tuple1)  # 3不在里面吗?
结果:
5
9
2
True
False  # 说明在

5、for遍历元组

tuple1 = ("苹果", "香蕉", "梨", "苹果")
for i in tuple1:
    print(i)

结果:
苹果
香蕉
梨
苹果

6、元组和列表之间的转化

list1 = [1, 4, 3]
tuple1 = tuple(list1)  # 列表转元组
print(tuple1)

tuple2 = (6, 7)
list2 = list(tuple2)  # 元组转列表
print(list2)


结果:
(1, 4, 3)
[6, 7]

7、元组加到列表上

注意区分:加的是元组里面的成员(元组里面值),还是元组

例如:把元组里的元素追加到列表上。

解析:就是说把成员加到列表后面。用extend、append、insert这三种方法都可以。

# 法1
list1 = ["苹果", "香蕉", "橘子"]
tuple1 = ("哈密瓜", "火龙果")
list1.extend(tuple1)   # extend是追加
print(list1)
结果:
['苹果', '香蕉', '橘子', '哈密瓜', '火龙果']



#法2
list1 = ["苹果", "香蕉", "橘子"]
tuple1 = ("哈密瓜", "火龙果")
a = 3    # !!!因为是追加,所以加进行下标是从最后一个下标+1开始
for i in tuple1:
    list1.insert(a, i)    # insert比较灵活,可以添加任意指定位置
    a += 1
print(list1)
结果:
['苹果', '香蕉', '橘子', '哈密瓜', '火龙果']


#法3
list1 = ["苹果", "香蕉", "橘子"]
tuple1 = ("哈密瓜", "火龙果")
for i in tuple1:
    list1.append(i)   # append也是追加
print(list1)
结果:
['苹果', '香蕉', '橘子', '哈密瓜', '火龙果']

小结:append、extend都是末尾追加,即:都是加到原列表的末尾,而insert比较灵活,它可以加到列表的任意指定位置。

延申:把元组加到后面。

list1 = ["苹果", "香蕉", "橘子"]
tuple1 = ("哈密瓜", "火龙果")

list1.append(tuple1)
print(list1)

结果:
['苹果', '香蕉', '橘子', ('哈密瓜', '火龙果')]

例如:把元组的成员加前面。此时只能用insert这一种方法。

#法1
list1 = ["苹果", "香蕉", "橘子"]
tuple1 = ("哈密瓜", "火龙果")

list1.insert(0, tuple1[0])
list1.insert(1, tuple1[1])
print(list1)

结果:
['哈密瓜', '火龙果', '苹果', '香蕉', '橘子']


#法2————推荐
list1 = ["苹果", "香蕉", "橘子"]
tuple1 = ("哈密瓜", "火龙果")
a = 0   # !!!!前面话,下标是0
for i in tuple1:
    list1.insert(a, i)
    a += 1
print(list1)

结果:
['哈密瓜', '火龙果', '苹果', '香蕉', '橘子']

尤其要注意法2,改变a的值,意味着,元组的成员可以放到任意位置。

list1 = ["苹果", "香蕉", "橘子"]
tuple1 = ("哈密瓜", "火龙果")
a = 0        #  关键
for i in tuple1:
    list1.insert(a, i)
    a += 1
print(list1)

结果:
['哈密瓜', '火龙果', '苹果', '香蕉', '橘子']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值