🎉 本系列为 Python 基础学习,原稿来源于 github 英文项目,大奇主要是对其本地化翻译、逐条验证和补充,想通过 30 天完成正儿八经的系统化实践。此系列适合零基础同学,会简单用但又没有系统学习的使用者。总之如果你想提升自己的 Python 技能,欢迎加入《挑战 30 天学完 Python》。
作者:大奇 MegaQi | Info 签约作者 ,专注测试开发技术实战干货分享,欢迎访问主页长期关注。
Tuple 元组
元组是不同数据类型的集合,它们是有序且不可变的。_tuple _使用圆括号()
包裹元素。它一旦被创建便不可修改。也就是说我们不能像上节学习的 list 一样更改集合项。同时也不能使用像 add,insert,remove 等方法。在元组中仅有少量的方法,这些方法如下:
tuple():创建一个空的元组
count():计算元组中指定项的个数
index():返回指定项的索引值
+ :连接两个或以上的元组成为新的元组
创建元组
元组的创建可以通过()
或tuple()
实现。在创建的时候也可以同时在括号内初始化数据项。
# 直接变量等于()
empty_tuple = ()
# 或使用元组构造函数
empty_tuple = tuple()
复制代码
# 语法
tpl = ('item1', 'item2','item3')
# 举例
fruits = ('banana', 'orange', 'mango', 'lemon')
复制代码
元组长度
同之前学过的字符和列表一样,计算元组的长度使用 len()
内置函数。
# # 语法形式
# tpl = ('item1', 'item2', 'item3')
# len(tpl)
# 实际举例
systems = ('Windowns','Linux','macOS')
print(len(systems)) # 3
复制代码
元组取值
类似 list 数据类型,获取元组的项同样通过索引 index 方式。
# # 语法形式
# tpl = ('item1', 'item2', 'item3')
# first_item = tpl[0]
# second_item = tpl[1]
fruits = ('banana', 'orange', 'mango', 'lemon')
first_fruit = fruits[0] # banana
second_fruit = fruits[1] # orange
last_index =len(fruits) - 1
last_fruit = fruits[last_index]
print(last_fruit) # lemon
复制代码
# # 使用语法
# tpl = ('item1', 'item2', 'item3','item4')
# first_item = tpl[-4]
# second_item = tpl[-3]
fruits = ('banana', 'orange', 'mango', 'lemon')
first_fruit = fruits[-4] # banana
second_fruit = fruits[-3] # orange
last_fruit = fruits[-1] # mango
复制代码
切片操作
我们可以通过指定元组中起始和结束位置的索引范围来切出子元组,其中返回值将是一个包含指定项的新元组。
# 语法形式
tpl = ('item1', 'item2', 'item3','item4')
all_items = tpl[0:4] # all items
all_items = tpl[0:] # all items
middle_two_items = tpl[1:3] # does not include item at index 3
复制代码
使用实战例子如下:
其中请再次回忆第二行取所有元素右侧索引是 4 而不是 3 呢?
fruits = ('banana', 'orange', 'mango', 'lemon')
all_fruits = fruits[0:4] # 所有元组项
all_fruits= fruits[0:] # 所有元组项
orange_mango = fruits[1:3] # 右3不包含index=3, print => ('orange', 'mango')
orange_to_the_rest = fruits[1:] #print => ('orange', 'mango', 'lemon')
复制代码
# 语法形式
tpl = ('item1', 'item2', 'item3','item4')
all_items = tpl[-4:] # 所有项:从右侧倒数第四项,即正向index=0
middle_two_items = tpl[-3:-1] # 不包括索引3(-1)的项
复制代码
应用举例说明:
fruits = ('banana', 'orange', 'mango', 'lemon')
all_fruits = fruits[-4:] # 所有项
orange_mango = fruits[-3:-1] # 不包括索引3的项,打印输出为 ('orange', 'mango')
orange_to_the_rest = fruits[-3:] # 打印输出为 ('orange', 'mango', 'lemon')
复制代码
转换 tuple 为 list
我们可以在元组和列表之间相互转换。因为元组是不可变的,因此如果我们想改变它则需要转换成 list。语法形式为list(元组)
反之转换为tuple(列表)
。以下看一些实际的例子:
fruits = ('banana', 'orange', 'mango', 'lemon')
fruits = list(fruits)
fruits[0] = 'apple'
print(fruits) # ['apple', 'orange', 'mango', 'lemon']
fruits = tuple(fruits)
print(fruits) # ('apple', 'orange', 'mango', 'lemon')
复制代码
检查元组中项
我们可以使用in
检查元组中是否存在指定项,它最终返回一个布尔值。
# # Syntax
# tpl = ('item1', 'item2', 'item3','item4')
# 'item2' in tpl # True
fruits = ('banana', 'orange', 'mango', 'lemon')
print('orange' in fruits) # True
print('apple' in fruits) # False
fruits[0] = 'apple' # TypeError: 'tuple' object does not support item assignment
复制代码
元组的连接
我们可以使用+操作符连接两个或多个元组。
# # syntax
# tpl1 = ('item1', 'item2', 'item3')
# tpl2 = ('item4', 'item5','item6')
# tpl3 = tpl1 + tpl2
fruits = ('banana', 'orange', 'mango', 'lemon')
vegetables = ('Tomato', 'Potato', 'Cabbage','Onion', 'Carrot')
fruits_and_vegetables = fruits + vegetables
print(fruits_and_vegetables)
vegetables_and_fruits = vegetables + fruits
print(vegetables_and_fruits)
复制代码
元组的删除
因为元组是不可变的。因此不能删除元组中的单个项,但可以使用 del 删除元组本身。
# # 语法
# tpl1 = ('item1', 'item2', 'item3')
# del tpl1
fruits = ('banana', 'orange', 'mango', 'lemon')
del fruits
print(fruits) # 提示错误 NameError: name 'fruits' is not defined
复制代码
🌕 能走这么远,你真的很厉害。你已经完成学习挑战的第六天课程。今天内容虽然不多,但还是需要一些练习来检验下学习效果。
第 6 天练习
练习 1 级
用两种方式创建一个空元组
创建两个具有关联的元组,如_兄弟 borthers _元组和 _姐妹 sisters _元组
然后将其中一个分配另一个组成 _兄弟姐妹 siblings _元组
请计算出新组合的元组(siblings)包含多少项
通过类型转换方式,完成新项的添加,如爸爸和妈妈。最终形成 family_members 元组<a name="Tu4xD"></a>
练习 2 级
从 family_members 拆分出 兄弟姐妹元组_siblings_ 和 父母元组_parents_
首先创建 fruits, vegetables 和 animal 元组(记得每个初始化几个值)。然后将三个元组合并起来赋值给变量名为 _food_stuff_tp _新元组。
将元组 food_stuff_tp 转成列表 food_stuff_lt
从 food_stuff_tp 元组 或 food_stuff_lt 列表中分隔出中间一项或者两项
从 food_stuff_tp 分别分别获取到前三项和后三项
彻底删除元组 food_staff_tp
完成如下元素检查。原始元组为 nordic_countries:
nordic_countries = ('Denmark', 'Finland','Iceland', 'Norway', 'Sweden')
复制代码
🎉 CONGRATULATIONS ! 🎉
英文原文:Day 6 - Tuple
如喜欢通过“点赞👍收藏❤️关注➕”鼓励作者大奇
文章中如有错误或疑问欢迎指正和交流。
评论