我想與每個元組的第一個元素形成一個元組。我是一個Python初學者,也許這是一個簡單的,但我不能找到一種方法來做它的幫助。如何用一個元組元組的每個元組的第一個值形成一個新的元組?
例如:
輸入
x = (('A','B','C'),('D','E','F'),('G','H','I'))
輸出:
y= ('A', 'D', 'G')
我想與每個元組的第一個元素形成一個元組。我是一個Python初學者,也許這是一個簡單的,但我不能找到一種方法來做它的幫助。如何用一個元組元組的每個元組的第一個值形成一個新的元組?
例如:
輸入
x = (('A','B','C'),('D','E','F'),('G','H','I'))
輸出:
y= ('A', 'D', 'G')
使用理解和轉換爲一個元組;
>>> x = (('A','B','C'),('D','E','F'),('G','H','I'))
>>> y = tuple([l[0] for l in x])
>>> y
('A', 'D', 'G')
或者只是'tuple(l [0] for x)',使用生成器表達式而不是列表理解。 – user2357112
@ user2357112謝謝。我只是試着'(l [0]爲x)',並完全錯過了它的發生器方面。 – CAB
該語法是由genexps採取的,任何替代的元組理解語法都不會比'元組(... ... ... in ...)'更具可讀性。 – user2357112
x = (('A','B','C'),('D','E','F'),('G','H','I'))
for each in zip(*x):
print(each)
打印:
('A', 'D', 'G')
('B', 'E', 'H')
('C', 'F', 'I')
使用zip()
功能。 Read more here.
編輯:
像CAB說,如果你只是想第一個,你可以這樣做:
y = zip(*x)[0]
如果你只想要第一個元組; 'y = zip(* x)[0]' – CAB
非常感謝您回答這個問題 –
你嘗試過什麼嗎?應該非常簡單地循環每個元素,並獲得每個元組的第一個位置。你試過這個嗎? – Tom