本文主要是介绍閑人壹のPython笔记.2021.08.05 · 元组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
閑人壹のPython笔记.2021.08.05 · 元组
- 元组(tuple)
- 1.元组 的 创建和删除
- 2.访问元组元素
- 3.修改元组元素
- 4.元组推导式
元组(tuple)
元组 是 Python 的另一个重要的序列结构,即:不可表列表。元组的所有元素都放在一对小括号 “()” 内,之间用逗号 “,” 间隔,可以将整数、实数、字符串、列表、元组等任何类型的内容放在同一列表中,元素之间没有任何关系。
元组 与 列表 的区别:
1.元组 的 创建和删除
-
使用赋值运算符,与列表基本相同只是 “[ ]" 变成了 “( )”
元组名 = (元素1,元素2,元素3,……,元素n)
实例:
yuan = (1,3,5,"瞒天过海","围魏救赵",'a',("明修栈道","暗渡陈仓"),'N',["借刀杀人","以逸待劳"]) # 创建元组 lie = [1,3,5,"瞒天过海","围魏救赵",'a',("明修栈道","暗渡陈仓"),'N',["借刀杀人","以逸待劳"]] #创建列表 print("元组1 的内容:",yuan) print("元组1 的类型:",type(yuan)) # 显示 yuan 数据类型 print("列表1 的内容:",lie) print("列表1 的类型:",type(lie)) # 显示 lie 的数据类型输出结果: 元组1 的内容: (1, 3, 5, '瞒天过海', '围魏救赵', 'a', ('明修栈道', '暗渡陈仓'), 'N', ['借刀杀人', '以逸待劳']) 元组1 的类型: <class 'tuple'> 列表1 的内容: [1, 3, 5, '瞒天过海', '围魏救赵', 'a', ('明修栈道', '暗渡陈仓'), 'N', ['借刀杀人', '以逸待劳']] 列表1 的类型: <class 'list'>
-
创建空元组
元组名 = ()
-
创建数值元组
语法:
元组名 = (data)
参数说明:
- data – 可转换为元组的数据,其类型可以是 range 对象、字符串、元组或者其他可迭代类型的数据。
实例:
创建一个 0 到 10 之间所有可整除 3 的数的元组:
yuan = tuple(range(3,11,3)) # 通过 range() 创建数列,并用 tuple() 转化为元组 print(yuan)输出结果: (3, 6, 9)
函数说明:
tuple() 函数将列表转换为元组。
语法:
tuple( iterable )
参数说明:
- iterable – 要转换为元组的可迭代序列。
-
删除元组 - del
del 元组名
此功能一般用不到,原因和删除列表一样,Python 有清理机制会自动清除无用的列表和元组。
2.访问元组元素
- 直接使用 print() ,实例如下:
yuan = (1,3,5,"瞒天过海","围魏救赵",'a',("明修栈道","暗渡陈仓"),'N',["借刀杀人","以逸待劳"])
print("元组1 的内容:",yuan)
print("元组1 的类型:",type(yuan))
print("显示元组前半段:",yuan[:4]) # 显示元组的索引4之前的元素
print("显示元组后半段:",yuan[5:]) # 显示元组的索引5之后的元素
print(yuan[0],"",type(yuan[0])) # 显示元组的第一个元素及数据类型
print(yuan[3],"",type(yuan[3]))
print(yuan[6],"",type(yuan[6]))
print(yuan[8],"",type(yuan[8]))
print(yuan[7],"",type(yuan[7]))输出结果:
元组1 的内容: (1, 3, 5, '瞒天过海', '围魏救赵', 'a', ('明修栈道', '暗渡陈仓'), 'N', ['借刀杀人', '以逸待劳'])
元组1 的类型: <class 'tuple'>
显示元组前半段: (1, 3, 5, '瞒天过海')
显示元组后半段: ('a', ('明修栈道', '暗渡陈仓'), 'N', ['借刀杀人', '以逸待劳'])
1 <class 'int'>
瞒天过海 <class 'str'>
('明修栈道', '暗渡陈仓') <class 'tuple'>
['借刀杀人', '以逸待劳'] <class 'list'>
N <class 'str'>
-
两种遍历方法,与遍历列表一样,实例如下:
yuan = (1,3,5,"瞒天过海","围魏救赵",'a',("明修栈道","暗渡陈仓"),'N',["借刀杀人","以逸待劳"]) print("元组1 的内容:",yuan) # 遍历元组 yuan for i in yuan:print(i) print("元组1 的内容:",yuan) # 遍历元组 yuan for x,y in enumerate(yuan):print(x+1,".",y)输出结果: 元组1 的内容: (1, 3, 5, '瞒天过海', '围魏救赵', 'a', ('明修栈道', '暗渡陈仓'), 'N', ['借刀杀人', '以逸待劳']) 1 3 5 瞒天过海 围魏救赵 a ('明修栈道', '暗渡陈仓') N ['借刀杀人', '以逸待劳'] 元组1 的内容: (1, 3, 5, '瞒天过海', '围魏救赵', 'a', ('明修栈道', '暗渡陈仓'), 'N', ['借刀杀人', '以逸待劳']) 1 . 1 2 . 3 3 . 5 4 . 瞒天过海 5 . 围魏救赵 6 . a 7 . ('明修栈道', '暗渡陈仓') 8 . N 9 . ['借刀杀人', '以逸待劳']
3.修改元组元素
元组是 不可变序列,对于元组元素的修改只能对整个元组重新赋值,或者添加元素,且在添加元素时只能添加一个元组,不能直接添加其他对象
-
实例1,将 yuan 中 “以逸待劳”,“趁火打劫” ,替换为 “明修栈道”,“暗渡陈仓”:
yuan = ("瞒天过海","围魏救赵","借刀杀人","以逸待劳","趁火打劫") print("元组1 的内容:",yuan) yuan = ("瞒天过海","围魏救赵","借刀杀人","明修栈道","暗渡陈仓") # 重新赋值 yuan,替换 "以逸待劳","趁火打劫" print("修改后元组1 的内容:",yuan)输出结果: 元组1 的内容: ('瞒天过海', '围魏救赵', '借刀杀人', '以逸待劳', '趁火打劫') 修改后元组1 的内容: ('瞒天过海', '围魏救赵', '借刀杀人', '明修栈道', '暗渡陈仓')
-
实例2,在 yuan 添加 “明修栈道”,“暗渡陈仓”:
yuan = ("瞒天过海","围魏救赵","借刀杀人") print("元组1 的内容:",yuan) yuan = yuan + ("明修栈道","暗渡陈仓") # 将 ("明修栈道","暗渡陈仓") 添加入 yuan print("修改后元组1 的内容:",yuan)输出结果: 元组1 的内容: ('瞒天过海', '围魏救赵', '借刀杀人') 修改后元组1 的内容: ('瞒天过海', '围魏救赵', '借刀杀人', '明修栈道', '暗渡陈仓')
4.元组推导式
元组推导式 作用 和 表现形式 与 列表推导式 一样,只是把 “[ ]” 变成了 “()”.
以列表推导式实例,生成一个包含 5 个数的随机数的元组,范围在 10 ~ 100 之间:
import random # 导入生成随机数模块 random
yuan = (random.randint(10,100) for i in range(5)) # 按条件创建元组
print ("随机数元组:",yuan)输出结果:
随机数元组: <generator object <genexpr> at 0x00000252843FB430>
# 代码直接输出里一个生成器对象,需要使用 tuple() 函数进行转换才能正常显示出元组。补充代码:
print ("随机数列:",tuple(yuan))输出结果:
随机数列: <generator object <genexpr> at 0x000001E159A8B430>
随机数列: (16, 31, 27, 14, 32)使用 for 进行遍历,转换生成器对象:
yuan = (random.randint(10,100) for i in range(5)) # 按条件创建元组
for i in yuan:print(i,end=" ") # 显示 yuan 中所有数值
print(tuple(yuan)) # 显示 元组 yuan输出结果:
95 16 62 19 25 ()
# 由于生成器对象中的数据被读取后就会清空,所有最后输出的元组 yuan 为空元组__next__() 方法,转换生成器对象:
yuan = (random.randint(10,100) for i in range(5)) # 按条件创建元组
print(yuan.__next__())
print(yuan.__next__())
print(yuan.__next__())
print(yuan.__next__())
print(yuan.__next__())
yuan = tuple(yuan)
print(yuan)输出结果:
66
72
47
15
21
()
next方法:返回迭代器的下一个元素
这篇关于閑人壹のPython笔记.2021.08.05 · 元组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!