繁体   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