2017-06-03 61 views
2

我想要做的就是拿一個給定的名單:
numlist_1: [3, 5, 4, 2, 5, 5]
並使用此功能如何將數字列表轉換爲字符串?

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 

隨着期望的輸出出現其轉換爲字符串:
to_string Test List is: 3, 5, 4, 2, 5, 5 List is: 3 - 5 - 4 - 2 - 5 - 5

但是,我得到一個錯誤,說
TypeError:不支持的操作數類型爲+:'int'和'str'

我想這是因爲打印語句之一是
print('List is:', list_function.to_string(num_list1, sep=' - '))
和分離器是從功能給出的不同,但我希望能陪兩個「‘和’ - 」分隔符爲我有另一個列表,它與','分隔符使用相同的功能。

我該如何解決這個問題?

回答

4

你可以試試這個

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 

然而,一個更簡潔的方法是這樣的:

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

另一種選擇:

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

另一種方式來解決這個問題

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

希望這有助於