仅当部分单词不在lis中时追加

2024-06-17 08:40:55 发布

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

我有一份如下的清单,想从中列出两份。如果第一个包含S01\u a,那么S01\u b应该在第二个列表中

my_list = ['S01_a', 'S01_b', 'S02_a', 'S02_b', 'S03_a', 'S03_b', 'S04_a', 'S04_b']

我试过这个,但是我不知道如何引用列表1中项目的[1:2]字符。有人有解决办法吗

stims = ["S01_a", "S01_b", "S02_a", "S02_b", "S03_a", "S03_b", "S04_a", "S04_b"]

l1 = []
l2 = []
for item in stims:
    if item[1:2] not in l1:
        l1.append(item)
    else:
        l2.append(item)


print(l1)
print(l2)

输出为:

['S01_a', 'S01_b', 'S02_a', 'S02_b', 'S03_a', 'S03_b', 'S04_a', 'S04_b']
[]

先谢谢你


Tags: 项目inl1列表myitemlistprint
1条回答
网友
1楼 · 发布于 2024-06-17 08:40:55

您可以将any()与一个生成器一起使用,该生成器针对列表中的每个元素测试item[1:3]

for item in stims:
    if not any(item[1:3] == el[1:3] for el in l1):
        l1.append(item)
    else:
        l2.append(item)

您需要使用切片[1:3]。记住,第二个索引不是包含的,所以[1:2]只选择数字0,而不是两个数字0102,等等

相关问题 更多 >