为什么在python中拆分后列表中的下一项会消失

2024-10-16 20:48:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张单子。然后,我想检测列表中的任何“and”,然后我应该在“and”之间分割项目,并将两者放入新列表中

问题是,在我进行拆分后,下一项将从列表中消失。 例如, 我有一张清单:

liss1=['a','b','c','d and e','f','g','h']

拆分并删除当前项后,下一项“f”从列表中消失,如下所示:

item 0 a
item 1 b
item 2 c
item 3 d and e
item 4 g
item 5 h
Unique_liss ['a', 'b', 'c', 'd ', ' e', 'g', 'h']

这是我的代码:

liss1=['a','b','c','d and e','f','g','h']
Unique_liss=[]
for i,item in enumerate(liss1):
    print('item',i,item)
    if 'and' in item:
        liss1.remove(item)
        split_elem_dan = item.split('and')
        for s in split_elem_dan:
            Unique_liss.append(s)
    else:
         Unique_liss.append(item)
print()
print('Unique_liss',Unique_liss)

有人对如何改进有什么想法吗?这样,下一个项目将保留在列表中


Tags: and项目in列表foritemsplitunique
3条回答

如果要在不使用enumerate的情况下执行此操作,此方法将起作用:

liss1=['a','b','c','d and e','f','g','h']
Unique_liss=[]

for item in liss1:
  for letter in [s for s in item.split('and')]:
    Unique_liss.append(letter.strip())


print('Unique_liss',Unique_liss)

试试这个:

lst = ['a','b','c','d and e','f','g','h']
res = []
for x in lst:
    if 'and' in x:
        res += [y.strip() for y in x.split('and')]
    else:
        res.append(x)

改变

for i,item in enumerate(liss1):

for i,item in enumerate(liss1.copy()):

相关问题 更多 >