簡體   English   中英

Python將元組列表的第二部分合並到字符串列表中

[英]Python merge second part of tuple list into list of strings

我剛剛開始學習Python,我看過類似的問題,似乎找不到一個有用的例子 - 我目前有這個元組列表:

 [('E', ['E', 'F', 'C', 'C']), ('F', ['A', 'D', 'D', 'B']), ('I', ['F', 'D', 'F', 'D']), ('R', ['E', 'B', 'D', 'B']), ('S', ['B', 'C', 'C', 'D'])]

我想把它們分成一個字符串列表,這樣它們看起來像這樣:

['EFCC', 'ADDB', 'FDFD', 'EBDB', 'BCCD']

我試圖使用'.join'函數,如下所示:

stringList = "".join([str(x[1]) for x in sortedList])

但這為我提供了一個表格列表:

['B', 'D', 'E', 'C']['B', 'C', 'B', 'D']['E', 'C', 'D', 'C']['B', 'C', 'D', 'C']['C', 'E', 'F', 'A']

我認為我使用的是連接方法錯誤,但在更改了一些內容之后,我無法弄清楚如何獲得我想要的格式。

你的問題是str(x[1])

x[1]是一個列表,您將其轉換為字符串:

>>> x = ('E', ['E', 'F', 'C', 'C'])
>>> x[1]
['E', 'F', 'C', 'C']

>>> str(x[1])
"['E', 'F', 'C', 'C']"

你想要的是加入列表的元素:

>>> ''.join(x[1])
'EFCC'

所以你的代碼將成為:

[''.join(x[1]) for x in sortedList]

使用列表推導並加入字符串,就像這樣。

t = [('E', ['E', 'F', 'C', 'C']), ('F', ['A', 'D', 'D', 'B']), ('I', ['F', 'D', 'F', 'D']), ('R', ['E', 'B', 'D', 'B']), ('S', ['B', 'C', 'C', 'D'])]

x = [''.join(b) for a, b in t]
print(x)

你可以使用map:

print map(lambda x: "".join(x[1]),t)

輸出:

['EFCC', 'ADDB', 'FDFD', 'EBDB', 'BCCD']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM