2012-04-25 40 views
1

假設我有如何「截斷」具有相同長度元組的元組的最後一列?

x = ((1, 2, 3), (4, 5, 6), (7, 8, 9)) 

如何去

x = ((1, 2), (4, 5), (7, 8)) 

我想通了,用列表解析,然後轉換回一個元組的唯一方法:

x = tuple([n[1:len(n)] for n in x]) 

但我覺得這是做它的醜陋的方式...

+3

我想你的意思'[:-1]'。此外,幾乎任何你使用的都需要你轉換回'tuple'(如果你真的需要一個'tuple')。 – agf 2012-04-25 05:25:12

回答

8
In [1]: x = ((1, 2, 3), (4, 5, 6), (7, 8, 9)) 

In [2]: tuple(a[:-1] for a in x) 
3

您可以使用一臺發電機表達式而不是列表理解(幾乎是相同的東西):

x = tuple(n[1:] for n in x) 

請注意,雖然這不會給你你上面的東西。如果要剪除你真正應該做的:

x = tuple(n[:-1] for n in x) 
+0

我不認爲有任何需要顯示第一個例子。 – jamylak 2012-04-28 14:08:34

相關問題