我想加入列表中的一組元組。加入列表中的元組
例如,
[(1, 2, 3), (1, 2, 4), (1, 2, 5)]
將成爲
[123, 124, 125]
(or ['123', '124', '125'] if it must become a string)
我不知道如何做到這一點,和搜索返回很少使用。
我該如何解決這個問題?
我想加入列表中的一組元組。加入列表中的元組
例如,
[(1, 2, 3), (1, 2, 4), (1, 2, 5)]
將成爲
[123, 124, 125]
(or ['123', '124', '125'] if it must become a string)
我不知道如何做到這一點,和搜索返回很少使用。
我該如何解決這個問題?
>>> bs = [(1, 2, 3), (1, 2, 4), (1, 2, 5)]
>>> ["".join(map(str, b)) for b in bs]
['123', '124', '125']
使用int()
轉換,如果結果必須是數字
你可以試試這個:
>>> [int(''.join(str(v) for v in val)) for val in [(1, 2, 3), (1, 2, 4), (1, 2, 5)]]
[123, 124, 125]
>>>
請注意,如果你希望他們爲字符串你不需要把它們轉換成int
。
不需要'[]'內部連接。 – 2012-07-07 08:51:16
是的,我只是因爲習慣而堅持LC ......;)儘管通用電氣似乎也相當驚人。 – 2012-07-07 08:54:52
使用這種包裝圍繞減少將處理任何非零長度的元組:
>>> combinedigits = lambda seq : reduce(lambda a,b:a*10+b, seq)
>>> combinedigits((1,2,3))
123
使用地圖,每個元組的傳遞給combinedigits功能:
>>> data = [(1, 2, 3), (1, 2, 4), (1, 2, 5), (1,2,3,4,5,6,7,9)]
>>> map(combinedigits, data)
[123, 124, 125, 12345679]
你總是有一個長度爲3 ? – phg 2012-07-07 08:46:04
是的,雖然長度可能會變成3以外的東西,但所有元組的長度都是相同的 – nebffa 2012-07-07 08:47:10