2016-06-03 20 views
0

beachten Sie bitte, im neuen zu Python: ich versuche, eine bestimmte Funktion zu erstellen, die eine Liste in einen String umwandeln kann, und ermöglicht es mir, einen Separator zu setzen in Der Separator muss ',' sein. Mein aktueller Denkprozess ist jedes Element aus einer Liste auf eine leere Zeichenfolge Variable hinzuzufügen, und dann einen Separator in Ich versuche Verwendung der Range-Funktion, um hinzuzufügen. Ich will nur str() verwenden und den Bereich().Konvertieren einer Liste in einen String und ermöglichen einen Separator

def list2Str(lisConv, sep = ', '): 
    var = '' 
    for i in lisConv: 
     var = var + str(i) 
     #test line 
     print(var, "test line") 
    var1 = int(var) 
    for a in range(var1): 
     print(str(var1)[a], sep = ', ') 

list1 = [2,0,1,6]   

result = list2Str(list1, ', ') 
print(result) 

Antwort

0
list=['asdf', '123', 'more items...'] 
print ', '.join([str(x) for x in list]) 

Wenn Sie eine eigene Funktion erstellen wollte konvertieren Sie die folgende tun könnte.

def convert(list, sep): 
    n_str = '' 
    for index, I in enumerate(list): #enumerate(list) returns (current position, list[current position]) so if we need to know the current position we use enumerate 
     if index != len(list)-1: 
      n_str += str(i) + sep #we don't apply the seperator if we're at the end of the list 
     else: 
      n_str += str(i) 
    return n_str 
+0

was, wenn die Elemente in der Liste sind nicht Saiten? – tom10

+0

die Liste ich suche, ist zu manipulieren nicht unbedingt ein String, weshalb ich Code enthalten haben, um zu versuchen und einen String zu erstellen, und wollen dann den Separator aufzunehmen. FYI das ist für Hausaufgaben, und wir dürfen keine String-Methoden verwenden – Newerino6525

+0

Ok. Der Beitrag wurde bereits so bearbeitet, dass er eine Funktion enthält, die eine Liste in eine Zeichenfolge konvertiert und jedes Element in der Liste durch ein Trennzeichen voneinander trennt. – TheLazyScripter

2

Zuerst müssen Sie die Liste von int in eine Liste von Zeichenfolgen konvertieren.

können Sie Liste Verständnis verwenden: https://docs.python.org/3/tutorial/datastructures.html

str_list = [str(x) for x in list1] 

Dann kommen die Liste der Zeichenfolge mit dem Separator Sie wollen.

sep = ', ' 
print(sep.join(str_list)) 

In prägnanter Weise:

print(', '.join([str(x) for x in [1, 2, 3])) 

Mehr Informationen über hier beitreten: http://www.diveintopython.net/native_data_types/joining_lists.html

+1

Oder noch prägnanter: 'sep.join (map (str, the_list))' – dawg

+0

Ja, die Kartenfunktion ist großartig, aber ich habe gehört, dass es ratsam ist, Listenverständnis stattdessen zu verwenden =) http://stackoverflow.com/questions/1247486/Python-Liste-Verständnis-vs-Karte – SnoozeTime

0

Wenn keine String-Methoden (wie join) erlaubt sind, reduce sollten die kürzeste Lösung bieten:

def list2Str(lisConv, sep = ', '): 
    return reduce(lambda x, y: str(x) + sep + str(y), lisConv) 

print(list2Str([2, 0, 1, 6], ', ')) 
# 2, 0, 1, 6 
Verwandte Themen