Python中的元组究竟是什么?

时间:2010-03-21 20:07:57

标签: python list tuples

我正在进行一些Python练习,而且我很难接受这个练习。

# 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

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

7 个答案:

答案 0 :(得分:14)

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

>>> t = (1, 2, 3)
>>> print t[0]
1
>>> t[0] = 2
TypeError: tuple object does not support item assignment

只需将元组传递给list()(就像任何可迭代的一样),就可以将元组转换为新的列表,并且可以通过将任何可迭代的元组传递给tuple()来将其转换为新的元组:

>>> list(t)
[1, 2, 3]
>>> tuple(["hello", []])
("hello", [])

希望这会有所帮助。另请参阅what the tutorial has to say about tuples.

答案 1 :(得分:11)

答案 2 :(得分:3)

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

在你的例子中:

[(2, 2), (1, 3), (3, 4, 5), (1, 7)]

这是一个元组列表 [...]是清单 (2,2)是一个元组

答案 3 :(得分:2)

元组是不可变的Python对象的序列。元组是序列,就像列表一样。元组和列表之间的区别在于,不能更改元组,这与列表不同,元组使用括号,而列表使用方括号。

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

tup1 = ('Dog', 'Cat', 2222, 555555);
tup2 = (10, 20, 30, 40, 50 );
tup3 = "a", "b", "c", "d";

空元组写为两个不包含任何内容的括号-

tup1 = ();

要编写包含单个值的元组,即使只有一个值,您也必须包含逗号-

tup1 = (45,);

像字符串索引一样,元组索引从0开始,并且可以对其进行切片,连接等。

答案 4 :(得分:1)

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

  

这些更有趣(如果微妙)差异的一个常见摘要是元组是异构,列表是同类。换句话说:元组(通常)是不同类型的东西的序列,并且您将元组作为连贯单元处理。列表(通常)是相同类型的序列,您可以单独处理这些项目。

来自:http://news.e-scribe.com/397

答案 5 :(得分:0)

元组用于将相关变量组合在一起。使用元组通常更方便,而不是编写另一个单用类。当然,通过索引访问它们的内容比命名成员变量更加模糊,但是总是可以使用'tuple unpacking':

def returnTuple(a, b):
    return (a, b)

a, b = returnTuple(1, 2)

答案 6 :(得分:0)

在Python编程中,元组类似于列表。它们之间的区别在于,一旦元组被分配,我们就无法更改它们的元素,而在列表中,元素可以被更改。 data-types-in-python