[英]Joining tuple elements - list comprehension
我們有這個:
lst = [('543', 'Tom', '- Jerry'), ('544', 'X-man - ', 'Hulk')]`
lst = [h+a for n,h,a in lst]
lst =[name.split(' - ') for name in lst]
我想首先將每個元組中的[1]
和[2]
元素連接在一起,然后在-
拆分它們-
拆分代碼可以工作,但列表理解無法將它們合並。
我們希望最終輸出為:
[('534', 'Tom, 'Jerry'), ('544', 'X-man', 'Hulk')]
使用上面的代碼,我們只能得到:
[('Tom, 'Jerry'), ('X-man', 'Hulk')]
@編輯
我還有另一個問題:有時我的元組只包含2個這樣的項(第二個元組): [('534', 'Tom, 'Jerry'), ('544', 'X-man - Hulk')]
我想擺脫lst = [tuple(i.split(' - ') if len(tup) == 2 else tuple(i.strip(' - ') for i in tup) for tup in lst]
-
因此從下面的列表理解中我lst = [tuple(i.split(' - ') if len(tup) == 2 else tuple(i.strip(' - ') for i in tup) for tup in lst]
了這個修改后的版本: lst = [tuple(i.split(' - ') if len(tup) == 2 else tuple(i.strip(' - ') for i in tup) for tup in lst]
,則會引發invalid syntax
異常。
抱歉,我再次詢問類似的問題,但是列表理解對我來說是一個新概念,但是如果我做到以上幾點,我將完成我的程序,所以我太耐心了,無法立即研究有關該主題的整個文檔。
也許我錯了,但是您真的只想去除空格和'-'嗎?
In [15]: lst = [('543', 'Tom', '- Jerry'), ('544', 'X-man - ', 'Hulk')]
In [16]: [tuple(i.strip(' -') for i in tup) for tup in lst]
Out[16]: [('543', 'Tom', 'Jerry'), ('544', 'X-man', 'Hulk')]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.