リストの各要素の先頭に "<"文字を追加しようとしています。文字列リストの各要素の先頭に文字を追加する方法
def names(lista):
for i in range(len(lista)):
lista[i]+="<"
return lista
リストの各要素の先頭に "<"文字を追加しようとしています。文字列リストの各要素の先頭に文字を追加する方法
def names(lista):
for i in range(len(lista)):
lista[i]+="<"
return lista
にあなたのコードになります。リスタ自体がそれにすべての参照を意味し、変異してきたので、「リターン・リスタ」ステートメントは、不要であることを
def names(lista):
for index, item in enumerate(lista):
lista[index] = "<" + item
return lista
注:あなたの代わりにリスタ内の項目を変更したいならば、あなたはenumerate機能を使用することができます変更が反映されます。
更新: 新しいリストを返す代わりに「リスタ」自体を変異して大丈夫なら、私は個人的にリスト内包をより読み見つけるものの、理解をリストアップする代わりに、ビルトインmap機能です。
def names(lista):
return list(map((lambda x: "<" + x), lista))
あなたの連結は間違った方法です。
lista[i] += "<"
をlista[i] = "<" + lista[i]
(コメントの示唆どおり)に置き換えてください。
def names(lista):
return ["<" + item for item in lista]
しかし、それは代わりにリスタ自体に各項目を変更するので、新しいリストを返します:それはあなたがリストの内包表記を使用することができます
def names(lista):
for i in range(len(lista)):
lista[i] = "<" + lista[i]
return lista
あなたはあなたが試すことができ
def names(lista):
return ['<{}'.format(elem) for elem in lista]
を書き込むことができます。
def names(lista):
return list(map(lambda i: '<'+i, lista))
このようなテスト:
:lista = ["a","b","c","d","e",]
lista = names(lista)
print(lista)
はあなたにこれを与えます
['<a', '<b', '<c', '<d', '<e']
あなたは 'lista [i] = '<' + lista [i]'を意味しましたか? –
@cairdcoinheringaahingただし、 '<'は各文字列の_end_にあります。現在は – roganjosh
はいです。それはうまく動作しますが、 "<"は最後に行き、最初にあることを意図しています。 – doer76