Python:在列表中循环?
我有一个清单,例如:Python:在列表中循环?,python,list,loops,Python,List,Loops,我有一个清单,例如: mylist=["a", "b", "end"] 我想将mylist的所有值附加到一个不同的列表(new_list)中,并将字符串“letter”添加到新_列表的每个值中,最后一个除外(value:end) 到目前为止,我有一个for循环,它将字符串“字母”添加到所有值中: new_list = [] for x in my_list: new_list.append(x + " letter") 产生: (“a字母”、“b字母”、“结束字母”) 我想: (“a
mylist=["a", "b", "end"]
我想将mylist的所有值附加到一个不同的列表(new_list)中,并将字符串“letter”添加到新_列表的每个值中,最后一个除外(value:end)
到目前为止,我有一个for循环,它将字符串“字母”添加到所有值中:
new_list = []
for x in my_list:
new_list.append(x + " letter")
产生:
(“a字母”、“b字母”、“结束字母”)
我想:
(“a字母”、“b字母”、“结束”)
我们必须跳过最后一个元素,为此使用列表切片;使用列表理解也会派上用场。试试这个:
mylist = ['a', 'b', 'end']
new_list = [x + ' letter' for x in mylist[:-1]] + [mylist[-1]]
它按预期工作:
new_list
=> ['a letter', 'b letter', 'end']
这最好通过列表理解和切片实现:
>>> new_list = [s + ' letter' for s in mylist[:-1]] + mylist[-1:]
>>> new_list
['a letter', 'b letter', 'end']
您可以将“字母”
添加到列表中除最后一个之外的每个元素,然后只添加最后一个
new_list = [x + " letter" for x in my_list[:-1]] + [my_list[-1]]
为什么列表中包含
“end”
?简单地终止列表可能会更清楚。嗯,所有这些临时列表。。。避免使用临时字符-[s+'letter'if i
,但同样难看。