2010-11-28 5 views

Répondre

7
>>> list=[1,2,3,4,5] 
>>> k = [str(x) for x in list] 
>>> k 
['1', '2', '3', '4', '5'] 
>>> "".join(k) 
'12345' 
>>> ["".join(k)] 
['12345'] 
>>> 
>>> [int("".join(k))] 
[12345] 
>>> 
2
a = [1,2,3,4,5] 
result = [int("".join(str(x) for x in a))] 
15
reduce(lambda x,y:10*x+y, [1,2,3,4,5]) 
# returns 12345 
+1

+1 pour l'utilisation de lambda – Liam

3
list=[int("".join(map(str,list)))] 
0
[int(reduce(lambda x,y: str(x) + str(y),range(1,6)))] 
9

Ce probablement mieux:

"%s" * len(L) % tuple(L) 

qui peut traiter:

>>> L=[1, 2, 3, '456', '7', 8] 
>>> "%s"*len(L) % tuple(L) 
'12345678' 
+0

Utilisation intelligente de l'opération de multiplication de la chaîne. – kindall

1

Est-ce vraiment ce que vous voulez dire par "fusionner la liste"? Vous comprenez qu'une liste Python peut contenir d'autres choses que des nombres, n'est-ce pas? Vous comprenez que Python est fortement typé, et ne vous laissera pas "ajouter" des chaînes aux nombres ou vice versa, non? Quel devrait être le résultat de "fusionner" la liste [1, 2, "hi mom"]?