[英]Difference accessing element(s) of tuple and list
為什么在將它作為tuple
時訪問t
的元素會有這種差異?
>>> t = [('ID','int')]
>>> for r in t:
print r
('ID', 'int')
t = (('ID','int'))
>>> for r in t:
print r
ID
int
我希望這與第一個例子完全一樣! 盡管使用多個元素填充元組,行為也會發生變化。
>>> t = (('ID','int'),('DEF','str'))
>>> for r in t:
print r
('ID', 'int')
('DEF', 'str')
>>> t = [('ID','int'),('DEF','str')]
>>> for r in t:
print r
('ID', 'int')
('DEF', 'str')
有人能簡單解釋一下嗎? 我正在運行python 2.7
(('a', 'b'))
與('a', 'b')
。
你真的想要(('a', 'b'),)
這在此處記錄:
expression_list ::= expression ( "," expression )* [","]
包含至少一個逗號的表達式列表產生一個元組。 元組的長度是列表中表達式的數量。 表達式從左到右進行評估。
尾隨逗號只需要創建一個元組(也就是單個元素); 在所有其他情況下它是可選的。 沒有尾隨逗號的單個表達式不會創建元組,而是生成該表達式的值。 (要創建一個空元組,請使用一對空括號:()。)
請記住,沒有這個限制,表達式(3) * (4)
應該是兩個數字或兩個元組的乘法嗎? 大多數用戶都希望這是數字的乘法。
t = [('ID','int')]
是一個列表中的元組。
t = (('ID','int'))
是一個帶有括號的元組。
t = ('ID','int'),
是一個元組中的元組。
,
制作元組! 只需要一個元組周圍的括號來避免歧義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.