[英]how to add a character at the beginning of each element of a string list
我試圖在列表的每個元素的開頭添加“<”字符。
def names(lista):
for i in range(len(lista)):
lista[i]+="<"
return lista
你的串聯是錯誤的。
嘗試將lista[i] += "<"
替換為lista[i] = "<" + lista[i]
(如評論中所建議)。 這使您的代碼變成
def names(lista):
for i in range(len(lista)):
lista[i] = "<" + lista[i]
return lista
您可以使用列表理解:
def names(lista):
return ["<" + item for item in lista]
但這將返回一個新列表,而不是更改 lista 本身中的每個項目。 如果您確實想更改 lista 中的項目,則可以使用enumerate函數:
def names(lista):
for index, item in enumerate(lista):
lista[index] = "<" + item
return lista
請注意,'return lista' 語句是不必要的,因為 lista 本身已發生變異,這意味着對它的所有引用都將反映更改。
更新:如果您可以返回一個新列表而不是改變 'lista' 本身,那么列表理解的替代方法是內置的map函數,盡管我個人認為列表理解更具可讀性。
def names(lista):
return list(map((lambda x: "<" + x), 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']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.