【发布时间】:2019-10-16 10:12:27
【问题描述】:
如何在遍历字符串列表时从字符串列表中删除元素。 我有一个清单
list1 = ['', '$', '32,324', '$', '32', '$', '(35', ')', '$', '32,321']
我想从列表中删除 $,如果出现 ) 或 )% 或 % 将其添加到列表的前一个元素中。
预期输出是:
['', '32,324', '32', '(35)', '32,321']
我试过的是
for j,element in enumerate(list1):
if element == '%' or element == ")%" or element ==')':
list1[j-1] = list1[j-1] + element
list1.pop(j)
elif element == '$':
list1.pop(j)
但我得到的输出是
['', '32,324', '32', '(35)', '$', '32,321']
这不是预期的输出。请帮忙
这个问题与建议的参考不同,这里如果当前元素是)、)% 或%,我必须与前一个元素进行连接。
【问题讨论】:
-
将你想要的元素复制到一个新列表中可能会更容易,而不是尝试过滤它并同时遍历它。
-
["(3", "$", ")"]的输出呢? -
@LanteDellarovere,这也应该连接到第一个元素,最后两个应该被删除,输出:`["(3$)"]
-
为什么
"$"包含在输出中? -
在我发布答案前几秒钟,问题已被搁置。 Here 是不用克隆列表的代码,检查一下。
标签: python python-3.x list