2016-05-23 13 views
1

Lassen Sie uns sagen, dass ich eine Liste von Integer-Listen haben:Gibt es in Python eine Möglichkeit, eine Liste von Integer-Listen in eine Liste von String-Listen zu konvertieren, ohne eine benutzerdefinierte Funktion zu erstellen?

start=[[1,2,3],[4,5,6],[7,8,9]] 

Und ich möchte dies in konvertieren:

result=[["1","2","3"],["4","5","6"],["7","8","9"]] 

ich meine eigene Funktion, indem dieses Problem lösen könnte. Gibt es eine Möglichkeit, es ohne eine benutzerdefinierte Funktion zu lösen?

def stringify(x): 
    return map(str,x) 

start = [[1,2,3],[4,5,6],[7,8,9]] 

result = map(stringify,start) 

Antwort

3

Um es als pythonic wie möglich zu machen, würde ich schreiben: IMO

result = [[str(subitem) for subitem in sublist] for sublist in start] 

, ist es immer besser, die meisten lesbaren Code zu schreiben, und list-comprehensions are sometimes faster than map.

1

, wenn Sie wissen, dass das Array regelmäßig (dh alle Zeilen die gleiche Länge haben) auch

tun können
result = numpy.array(start, dtype=str) 

was natürlich aber ein numpy Array zurückgibt, keine Liste.