我正在尝试添加“<”列表中每个元素开头的字符。
def names(lista):
for i in range(len(lista)):
lista[i]+="<"
return lista
答案 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']