考慮以下幾點:拉上交替元素
list = [('[', "'Conrad Clifton'"), ('[', "'Rippa'")]
我將如何獲取列表的形式類似
[('Conrad Clifton', 'Rippa')]
東西:
new_list = []
for first, second in list:
new_list.append(second)
然後轉換列表成一個元組。有沒有辦法做到這一點與列表理解?
考慮以下幾點:拉上交替元素
list = [('[', "'Conrad Clifton'"), ('[', "'Rippa'")]
我將如何獲取列表的形式類似
[('Conrad Clifton', 'Rippa')]
東西:
new_list = []
for first, second in list:
new_list.append(second)
然後轉換列表成一個元組。有沒有辦法做到這一點與列表理解?
>>> tuple(second for first, second in li)
("'Conrad Clifton'", "'Rippa'")
不要命名您的列表作爲list
。這是一個內置的類型。您不應該使用內置名稱來命名變量。
爲什麼要構建一箇中間列表?似乎有點浪費。 – 2013-02-10 23:28:54
@WaleedKhan。是的。在添加元組到列表理解時忘了刪除。 – 2013-02-10 23:29:35
另一種解決方案(蟒2.X):使用list
作爲變量名
>>> x = [('[', "'Conrad Clifton'"), ('[', "'Rippa'")]
>>> zip(*x)[1]
("'Conrad Clifton'", "'Rippa'")
避免,它陰影內置的名稱。
您還可以使用operator.itemgetter
:
>>> import operator
>>> l = [('[', "'Conrad Clifton'"), ('[', "'Rippa'")]
>>> map(operator.itemgetter(1), l)
["'Conrad Clifton'", "'Rippa'"]
壞主意,使用 '列表' 作爲名稱... – 2013-02-10 23:27:42
'元組(第二爲第一,第二列表)'? – millimoose 2013-02-10 23:28:31
您發佈的代碼會產生'['''康拉德克利夫頓'','''''''',而不是'[''康拉格克利夫頓','裏帕')]''。你想要什麼? – Johnsyweb 2013-02-10 23:32:18