繁体   English   中英

append 仅当单词的一部分不在列表中时

[英]append only if part of word is not already in list

我有一个类似下面的列表,并想从中列出两个列表。 如果第一个包含 S01_a,则 S01_b 应该在第二个列表中。

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

我试过这个,但我不知道如何引用 list1 中项目的 [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)

output 是:

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

先感谢您。

您可以将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等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM