我需要循环来运行列表,并将所有值与特定字符串连接到前面的值。我有以下内容,只能部分完成工作。
thing = ["abc","bde","bdf","bdg","bei"]
for i in thing:
if "bd" in i:
value = thing.index(i)
thing[value-1]=thing[value-1]+thing[value]
del thing[value]
print thing
当这个被放入时,我得到:
['abcbde', 'bdfbdg', 'bei']
期望的结果是:
['abcbdebdfbdg', 'bei']
编辑:修正缩进
答案 0 :(得分:0)
正如其他人所建议的那样,我不建议您在迭代时更改thing
,因为它可能会产生意想不到的后果。试试这个:
thing=['abc', 'bde', 'bdf', 'bdg', 'bei']
output=[thing[0]] # initiate output to ['abc']
for i in thing[1:]: #['bde', 'bdf', 'bdg', 'bei']
if 'bd' in i:
output[-1]=output[-1]+i
else:
output.append(i)
print(output)
#['abcbdebdfbdg', 'bei']
从'bde'
开始迭代,以便output
中有一个元素可以累积。然后使用[-1]
拼接来获取output
的最后一个元素,如果'bd'
在当前迭代中,则追加。
如果您确实要清空thing
,我建议您使用列表.pop
方法。这就是你的循环结束时thing=[]
。