2017-06-03 4 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'のためのサポートされないオペランドタイプ

これは印刷文の1つが
print('List is:', list_function.to_string(num_list1, sep=' - '))
であり、セパレータが関数内で指定されたものと異なるためですが、 '、'と ' - 'の両方のセパレータをI代わりに '、'セパレータと同じ機能を使用する別のリストがあります。

どうすればこの問題を回避できますか?

答えて

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)))) 

これがうまくいくことを願って。

関連する問題