我对我遇到的一个问题有点困惑,我想知道是否有人能帮上忙(在我看来这是微不足道的,所以我希望这是真的!)你知道吗
基本上,我已经通过以下列表进行了筛选:
depfilt = [s for s in department if 'author' not in s]
(其中department有154个元素,depfilt有72个元素)
现在,我还有一个单独的iD值列表,包含154个元素(subj
),这个列表的索引与department
中的索引匹配。我想在过滤过程之后保留正确的iD值,因此使用了以下代码行:
subfilt = [s for s in subj if 'author' not in department[subj.index(s)]]
在我看来,我觉得这应该有效,但subfilt实际上返回106个列表元素,而不是72个。你知道吗
有人知道为什么吗?你知道吗
谢谢
如果} 在两个列表上同时迭代:
department
和subj
的顺序肯定相同,即每个匹配的对应元素,则使用^{(部门使用
d
,主题使用s
)。你知道吗这样就不需要按索引引用每个元素。只是标准的迭代。你知道吗
编辑:如果您想保持列表分开,那么您可以对
dept
执行第一步,就像您已经做的那样,然后修改主题的第二个循环,这样,在循环两个主题时仍然过滤“author”:(因此在第二个循环中
d
的值被忽略)输出示例:
如果值重复,请使用
enumerate
而不是index
相关问题 更多 >
编程相关推荐