如何在字符串列表的每个元素的开头添加一个字符

时间:2017-10-30 19:22:10

标签: python

我正在尝试添加“<”列表中每个元素开头的字符。

def names(lista):
    for i in range(len(lista)):
        lista[i]+="<"
    return lista

4 个答案:

答案 0 :(得分:0)

你的连接方式是错误的。

尝试将printf("%s", typeof('A' + i));替换为lista[i] += "<"(如评论中所示)。这使您的代码成为

lista[i] = "<" + lista[i]

答案 1 :(得分:0)

您可以使用列表理解:

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))

答案 2 :(得分:0)

你可以写

def names(lista):
    return ['<{}'.format(elem) for elem in lista]

答案 3 :(得分:0)

您可以尝试:

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']