在python中调用的是什么:
[('/', MainPage)]
那是......一个字典的数组吗?
那是
()
一个元组? (或者他们称之为什么?)
答案 0 :(得分:14)
它是一个包含单个元组的列表。
答案 1 :(得分:6)
因为还没有人回答这个问题:
一个元组? (或者他们称之为什么?)
“元组”这个词来自数学。在数学中,如果我们做二维几何,我们可能会讨论(有序)对。转向三维意味着我们需要三元组。在更高的维度中,我们需要四倍,五倍,以及呃,无论前缀是六个,依此类推。这开始变得痛苦,数学家也喜欢泛化(“让我们今天在n维工作!”),所以他们开始使用术语“n-tuple”作为n个事物(通常是数字)的有序列表。 / p>
在那之后,你需要一点点自然的懒惰来放弃“n-”,我们最终会得到元组。
答案 2 :(得分:3)
请注意:
("is not a tuple")
元组由逗号定义,除了零长度元组的情况。这样:
"is a tuple",
因为最后的逗号。括号只是强制执行分组(再次,除了零长度元组的情况。
答案 3 :(得分:2)
这是一个元组列表。
这是一个整数列表:[1, 2, 3, 4, 5]
这也是一个整数列表:[1]
这是一个(字符串,整数)元组:("hello world", 42)
这是(字符串,整数)元组的列表:[("a", 1), ("b", 2), ("c", 3)]
这就是:[("a", 1)]
在Python中,列表和元组之间没有太大区别。但是,它们在概念上是不同的。想到它的一种简单方法是列表包含许多相同类型的项(同类),而元组包含固定数量的不同类型的项(异构)。记住这一点的一个简单方法是列表可以附加到,而元组则不能,因为附加到列表是有意义的,并且附加到元组不会。
Python没有强制实施这些区别 - 在Python中,您可以使用+
附加到元组,或者将异构类型存储在列表中。
答案 4 :(得分:1)
答案 5 :(得分:1)
[('/', MainPage)]
这是一个由两个元素元组组成的列表。
()
这是一个零元素元组。
答案 6 :(得分:1)
这是一个元组列表。您可以通过
验证x=[('/', MainPage)]
print type(x) # You will find a <list> type here
print type(x[0]) # You will find a <tuple> type here
您可以使用此代码从此类型的结构(可能是列表中的更多元组)构建字典
my_dict = dict(x) # x=[('/',MainPage)]
答案 7 :(得分:0)
这是一个包含一个元组的元组列表。
元组就像一个列表,除了它是不可变的,这意味着它一旦创建就无法更改。您无法添加,删除或更改元组中的元素。如果您希望元组不同,则必须使用新数据创建新元组。这可能听起来很痛苦,但实际上元组在代码安全性和速度方面都有很多好处。
答案 8 :(得分:0)
这只是一个元组的列表。该元组有两个元素,一个字符串和对象MainPage
无论它是什么。
列表和元组都是有序的对象组,无论哪种对象都无关紧要,它们在两种情况下都可以是异构的。
列表和元组之间的主要区别在于元组是不可变的 ,就像字符串一样。
例如,我们可以定义一个列表和一个元组:
>>> L = ['a', 1, 5, 'b']
>>> T = ('a', 1, 5, 'b')
我们可以通过为它们分配一个新值来修改L的元素
>>> print L
['a', 1, 5, 'b']
>>> L[1] = 'c'
>>> print L
['a', 'c', 5, 'b']
对于元组
,情况并非如此>>> print T
('a', 1, 5, 'b')
>>> T[1] = 'c'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
这是因为它们是不可变的。 元组的元素可能是可变的,您可以修改它们,例如:
>>> T = (3, ['a', 1, 2], 'lol')
>>> T[1]
['a', 1, 2]
>>> T[1][0] = 'b'
>>> T
(3, ['b', 1, 2], 'lol')
但是我们编辑的列表仍然是同一个对象,我们没有替换元组的元素。