2017-06-03 8 views
2

Was ich versuche zu tun ist, um eine gegebene Liste nehmen:
numlist_1: [3, 5, 4, 2, 5, 5]
und wandelt es in eine Zeichenfolge mit dieser FunktionWie konvertiert man eine Liste von Zahlen in eine Zeichenkette?

def to_string(my_list, sep=', '): 
    newstring = '' 
    count = 0 
    for string in my_list: 
     if (length(my_list)-1) == count: 
      newstring += string 
     else: 
      newstring += string + sep 
     count += 1 

return newstring 

Mit der gewünschten Ausgabe erscheinen als:
to_string Test List is: 3, 5, 4, 2, 5, 5 List is: 3 - 5 - 4 - 2 - 5 - 5

Ich erhalte jedoch einen Fehler, der besagt,
TypeError: nicht unterstützte Operandentyp (en) für +: 'int' und 'str'

Ich denke, das liegt daran, dass eine der Druck Aussagen
ist print('List is:', list_function.to_string(num_list1, sep=' - '))
und der Separator unterscheidet sich von dem in der Funktion gegeben, aber ich will für beide ‚‚und begleiten können‘-‘ seperators wie ich habe eine andere Liste, die dieselbe Funktion mit dem ',' Trennzeichen verwendet.

Wie kann ich das umgehen?

Antwort

4

können Sie versuchen, diese

def to_string(my_list, sep=', '): 
    newstring = '' 
    count = 0 
    for string in my_list: 
     if (length(my_list)-1) == count: 
      newstring += str(string) 
     else: 
      newstring += str(string) + sep 
     count += 1 

return newstring 

jedoch eine viel prägnante Art und Weise, ist dies:

sep = ', ' 
sep.join(map(str,my_list)) 
3

Eine weitere Option:

sep = ', ' 
output_str = sep.join([str(item) for item in my_list]) 
0

eine andere Möglichkeit, dieses Problem zu lösen

L = [1,2,3,4,-5] 
sep = "" 
print(sep.join(list(map(str,L)))) 

hoffe das hilft

Verwandte Themen