python - 仅当部分单词尚未在列表中时才追加

标签 python list character

我有一个如下所示的列表,并想从中创建两个列表。如果第一个列表包含 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)

输出为:

['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

关于python - 仅当部分单词尚未在列表中时才追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58975537/

相关文章:

regex - perl6 正则表达式 : match all punctuations except . 和“

python - 使用 python 和 boto3 删除 S3 对象时出现问题

python - 从子类中的属性中删除属性(getter/setter)

python - 使用 zip 或数组对列表进行操作

c# - 如何合并列表中的多个连续值?

c++ - 字符编码困惑!

python - 获取 GBDT 模型树信息

python - 我正在尝试计算绝对 Xpath 一个作为子元素的添加按钮

java - 将模型列表转换为json格式

python - 从索引开始遍历 python 字符串