2017-03-13 5 views
0

Kürzlich entwickelte ich ein Programm, das eine Liste von Zahlen und findet die größte Anzahl von ihnen, die durch 3 teilbar ist. Es funktioniert aber ich verstehe nicht wie Sie es in eine normale Liste ändern. Hier ein Beispiel: Ich habeWie entferne ich() und Kommas aus einer Liste von Tupeln

[(3, 3, 4), (3, 4, 3), (3, 3, 4)] 

Ich würde

haben möge
[334,343,334] 

Danke für die Hilfe

Im Anschluss an der großen Hilfe, die ich einen ungewöhnlichen Fehler erhalten mit Tupeln zu tun Nochmals vielen Dank für die Hilfe hier ist es;

import intercools 
list1 = [] 
stuff = [1, 2, 3] 
for L in range(0, len(stuff+1): 
    for subset in itertools.combinations(stuff, L): 
     list1.append(subset) 
print(list1) 
sep = [map(str,l)for l in list1] 
nl = [int(''.join(s)) for s in sep] 
print(nl) 

Antwort

1

Und noch eine:

ml = [(3, 3, 4), (3, 4, 3), (3, 3, 4)] 

sep = [map(str,l) for l in ml] 

nl = [int(''.join(s)) for s in sep] 

print(nl) # [334, 343, 334] 
0

Sie können es mit literal_eval von ast Modul wie auf diese Weise:

from ast import literal_eval 

a = [(3, 3, 4), (3, 4, 3), (3, 3, 4)] 
b = [literal_eval("".join(str(j) for j in k)) for k in a] 
print(b) 

Ausgang:

[334, 343, 334] 

Auch können Sie es wie auf diese Weise tun:

a = [(3, 3, 4), (3, 4, 3), (3, 3, 4)] 
b = [int("".join(str(j) for j in k)) for k in a] 

Sie können aber auch map Methode verwenden, es zu tun:

a = [(3, 3, 4), (3, 4, 3), (3, 3, 4)] 
# Or using literal_eval 
b = [int("".join(map(str, k))) for k in a] 
0

Liste Comprehensions in Python Ihr Freund sind.

t = [(3, 3, 4), (3, 4, 3), (3, 3, 4)] 
str_tuple = [(str(x), str(y), str(y)) for (x, y, z) in t] 
final = [int(''.join(x)) for x in str_tuple] 
# [334, 343, 334] 
1

Gegeben:

>>> LoT=[(3, 3, 4), (3, 4, 3), (3, 3, 4)] 

Sie eine Zeichenfolge verwenden können, die Tupelelemente miteinander zu verbinden, dann in einen int Neufassung:

>>> [int(''.join(map(str, t))) for t in LoT] 
[334, 343, 334] 
Verwandte Themen