長さに応じてカンマとアンパサンドを使ってPythonの文字列リストを分割したいと思います。例えば長さに応じてカンマとアンパサンドを使用してPythonの文字列リストを分離する方法は?
>>> my_list = ['a']
>>> foo(my_list)
a
>>> my_list = ['a', 'b']
>>> foo(my_list)
a & b
>>> my_list = ['a', 'b', 'c']
>>> foo(my_list)
a, b & c
長さに応じてカンマとアンパサンドを使ってPythonの文字列リストを分割したいと思います。例えば長さに応じてカンマとアンパサンドを使用してPythonの文字列リストを分離する方法は?
>>> my_list = ['a']
>>> foo(my_list)
a
>>> my_list = ['a', 'b']
>>> foo(my_list)
a & b
>>> my_list = ['a', 'b', 'c']
>>> foo(my_list)
a, b & c
これは、あなたが欲しいものを行う必要があります。
def list_to_str(lst):
remaining = len(lst)
out = ""
for item in lst:
out += str(item) + " "
remaining -= 1
if remaining == 0:
return out
elif remaining == 1:
out += "& "
else:
out = out[:-1]+ ", "
たぶんLEN()関数で、例を使用します。
seperator = len(list) - 1 list[seperator].insert("&")
あなたはこのようにそれを行うことができます。
def foo(a):
if len(a) > 1:
return ' & '.join([', '.join(a[:-1]), a[-1]])
if len(a) == 1:
return a[0]
あなたのpython 3を使用している場合は、より高度な解凍を使用することができます。
>>> *a, b = ['a']
>>> ' & '.join([', '.join(a), b]) if a else b
'a'
>>> *a, b = ['a', 'b']
>>> ' & '.join([', '.join(a), b]) if a else b
'a & b'
>>> *a, b = ['a', 'b', 'c']
>>> ' & '.join([', '.join(a), b]) if a else b
'a, b & c'
開梱店のすべての要素が、中の最後の1 a
と最後の要素はb
です(空のリストはエラーを生成しますが、それは簡単に処理できます)。これはまさに特殊なセパレータの分割であり、正しく結合するために上昇させることができます。
>>> lst = ['a', 'b', 'c']
>>> *a, b = lst[:-1], lst[-1]
あなたは3つの要素よりも長い私たちのリストの例を与えることができます:
あなたはpython2で似た何かを行うことができますか? – Fejs
a、b、c&d(3つ以上の要素) – user5319825
更新された回答を確認してください – Backtrack