簡體   English   中英

如何在字符串列表的每個元素的開頭添加一個字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM