Python中的元组到底是什么?

Python中的元组到底是什么?,python,list,tuples,Python,List,Tuples,我正在做几次蟒蛇练习,但这一次我被难住了 # C. sort_last # Given a list of non-empty tuples, return a list sorted in increasing # order by the last element in each tuple. # e.g. [(1, 7), (1, 3), (3, 4, 5), (2, 2)] yields # [(2, 2), (1, 3), (3, 4, 5), (1, 7)] # Hint: use

我正在做几次蟒蛇练习,但这一次我被难住了

# C. sort_last
# Given a list of non-empty tuples, return a list sorted in increasing
# order by the last element in each tuple.
# e.g. [(1, 7), (1, 3), (3, 4, 5), (2, 2)] yields
# [(2, 2), (1, 3), (3, 4, 5), (1, 7)]
# Hint: use a custom key= function to extract the last element form each tuple.
def sort_last(tuples):
  # +++your code here+++
  return

什么是元组?它们是指列表列表吗?

元组是Python序列类型中最简单的一种。您可以将其视为不可变(只读)列表:

只需将元组传递到
list()
(与任何iterable一样),即可将元组转换为新列表,而将任何iterable传递到
tuple()
,即可将其转换为新元组:


希望这有帮助。另请参见

元组和列表非常相似。主要区别(作为用户)是元组是不可变的(不能修改)

在您的示例中:

[(2, 2), (1, 3), (3, 4, 5), (1, 7)]
这是一个元组列表 […]是列表 (2,2)是一个元组
  • (Python常见问题解答)

  • 元组用于将相关变量分组在一起。使用元组通常比编写另一个单用途类更方便。诚然,通过索引访问它们的内容比使用命名成员变量更难理解,但始终可以使用“tuple unpacking”:

    def returnTuple(a, b):
        return (a, b)
    
    a, b = returnTuple(1, 2)
    

    我读过的列表和元组之间差异的最佳总结如下:

    对于这些更有趣(即使细微)的差异,一个常见的总结是元组是异构的,而列表是异构的。换句话说:元组(通常)是不同种类的事物的序列,你将元组作为一个连贯的单元来处理。列表(通常)是同类物品的序列,您可以单独处理这些物品


    From:

    在Python编程中,元组类似于列表。它们之间的区别在于,一旦元组被赋值,我们就无法更改元组的元素,而在列表中,元素是可以更改的。
    元组是一系列不可变的Python对象。元组是序列,就像列表一样。元组和列表之间的区别是,元组不能更改,而列表和元组使用括号,而列表使用方括号

    创建元组就像放置不同的逗号分隔值一样简单。也可以选择将这些逗号分隔的值放在括号之间。例如−

    tup1 = ('Dog', 'Cat', 2222, 555555);
    tup2 = (10, 20, 30, 40, 50 );
    tup3 = "a", "b", "c", "d";
    
    空元组被写成两个不包含任何内容的括号−

    tup1 = ();
    
    要编写包含单个值的元组,必须包含逗号,即使只有一个值−

    tup1 = (45,);
    

    与字符串索引一样,元组索引从0开始,可以进行切片、连接等操作。

    这些练习在哪里?你在用什么教程?@Sergio你能提供一个链接吗?可能是这样的:练习的答案(与元组无关):
    import操作符;tuples.sort(key=operator.itemgetter(1))
    在Haskell中,列表项必须是相同的类型,而tuple不是。但在Python中并非如此。在Python中,区别在于不变性。
    tup1 = ();
    
    tup1 = (45,);