python基础之元组

82 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情

元组是 Python 中的一种重要数据结构,与Python 列表(非常相似。元组和列表之间的主要区别是元组不能被修改。一旦创建,它就是固定不变的。元组比列表更快,所以如果您知道您的数据不会更改,那么这是正确的方法。元组通常用于遍历我们知道不会更改的固定项目列表。

在本篇文章中,我们将介绍如何使用元组,以及您希望使用它们执行的一些方法和操作。首先,让我们定义一个新的元组:

myTuple = ("my", "new", "tuple") 
print(myTuple) 
# ('my', 'new', 'tuple')

您可能还会看到没有括号定义的元组。逗号分隔值的列表也自动成为一个元组:

myTuple = "my", "new", "tuple" 
print(myTuple) 
# ('my', 'new', 'tuple')

尝试更改元组将导致错误:

myTuple = ("my", "new", "tuple") 
myTuple[0] = "your" 
# TypeError: 'tuple' object does not support item assignment

不过,正如您所料,这意味着我们可以使用语法访问元组数据myTuple[0],以引用索引 0 处的项目。

元组可能包含重复项,因此它们不受Python 集之类的唯一性限制:

myTuple = ("my", "new", "tuple", "tuple") 
print(myTuple) 
# ('my', 'new', 'tuple', 'tuple' )

最后,元组也可以嵌套,就像列表一样:

myTuple = ( ("nested", "tuple"), "my", "new", "tuple", "tuple")

使用元组检查成员资格

与 Python 集一样,我们可以使用in和not in关键字使用元组测试成员资格。例如,在下面,我们检查是否apple在我们的元组中fruits:

fruits = ("apple", "pear", "strawberry") 
print("apple" in fruits) 
# True print("apple" not in fruits) # False

组合元组

由于如果我们想制作元组的更新版本,我们无法修改元组,因此我们需要组合它。这可以通过将它们加在一起来完成:

tupleOne = ("one", "two") 
tupleTwo = ("three", "four") 
tupleThree = tupleOne + tupleTwo 
print(tupleThree) 
# ("one", "two", "three", "four")

排序元组

由于元组像 Python 列表一样有序,我们也可以对元组进行排序。但是,元组没有方法sort(),所以我们必须使用sorted()函数。为什么我们不能使用sort()方法?因为元组是不可变的!所以我们必须定义一个新的元组使用sorted():

myTuple = ("a", "c", "e", "b", "f", "d", "g", "z", "w", "x") 
myNumberTuple = (1, 3, 5, 2, 7, 4, 6) 
newTuple = sorted(myTuple) 
newNumberTuple = sorted(myNumberTuple) 
print(newTuple) 
# ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'w', 'x', 'z') 
print(newNumberTuple) 
# (1, 2, 3, 4, 5, 6, 7)

与 一样list.sort(),如果您尝试使用多种类型(如整数和字符串)进行排序,您最终会遇到错误。在这里,我们必须使用 的附加参数sorted()来对我们的列表进行排序:

  • key给我们一个数字,用于比较列表内容
  • reverse如果设置为 true 将颠倒顺序。

例如,要放置b元组开头的所有值,我们可以尝试这样的事情:

def isB(letter): 
    if(letter == "b"): 
        return 1 
    else: 
        return 0 
myTuple = ("b", "c", "b", 5, "f", "b", 2, "z", "a", "x") 
newTuple = sorted(myTuple, key=isB, reverse=True) 
print(newTuple) 
# ['b', 'b', 'b', 'c', 5, 'f', 2, 'z', 'a', 'x']

这里我们定义了一个函数isB,用于sorted()将元组中的每个项目传递给函数。如果元组中的项目是b,则该项目的顺序设置为1,否则为0。这使我们可以根据字母数字顺序以外的条件对列表进行排序。