Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,如何将一个列表中的项与另一个列表中的项进行匹配_Python - Fatal编程技术网

在Python中,如何将一个列表中的项与另一个列表中的项进行匹配

在Python中,如何将一个列表中的项与另一个列表中的项进行匹配,python,Python,在没有一大堆“for”和“if”循环的情况下,很难找到将一个列表中的元素与另一个列表中的元素相匹配的python解决方案。我希望能找到一个更好的方法。我有一些大的迭代循环,通过多个列表执行匹配。在匹配中,我希望删除列表中的元素。以下是两个例子: def score_and_retweet(auth): api = tweepy.API(auth) for tweet in api.home_timeline(count=100, include_rts=0): f

在没有一大堆“for”和“if”循环的情况下,很难找到将一个列表中的元素与另一个列表中的元素相匹配的python解决方案。我希望能找到一个更好的方法。我有一些大的迭代循环,通过多个列表执行匹配。在匹配中,我希望删除列表中的元素。以下是两个例子:

def score_and_retweet(auth):
    api = tweepy.API(auth)
    for tweet in api.home_timeline(count=100, include_rts=0):
        for goodword in tweet_whitelist:
            if goodword in tweet.text and tweet.retweet_count >= 2:
                try:
                    api.retweet(tweet.id_str)
                except tweepy.error.TweepError:
                    error_id = tweet.id_str


不确定它在性能方面会有多大变化,但您可以编写一个过滤函数

例如,在第二种情况下(如果您正在寻找精确匹配)

然后使用:

goodFiles = filter(fileFilter, htmlfiles)

与集合交集相比,它的优点是,您可以使筛选函数尽可能复杂(第一个示例中有多个条件)

尝试回答这部分问题
将一个列表中的元素与另一个列表中的元素进行匹配可以使用
集合()
,例如:

a = ['a','b','c','d','g']
b = ['a','c','g','f','z']

list(set(a).intersection(b)) # returns common elements in the two lists

你能把清单分类吗?如果是这样的话,你可以在1次扫描中完成。这并不是你问题的答案,但在第一个示例中,你可以将
tweet.retweet\u count>=2
条件移动到tweet\u白名单中goodword的
循环之外-如果该条件已经为false,则无需执行循环。(如果
if
有一个
else
,则忽略此项)如果维持顺序无关紧要,则有
集合
,也有一个有序的配方。然后你得到集合操作,它为你做所有这类事情。事实上,如果顺序不重要,把它们分成两个集合,然后就是
set1^set2
。在你的第二个例子中,检查文件名中是否有坏话是明智的,如果坏话是cock,文件是pickout,谢谢你的回答!在“if X in Y:”这种情况下,我怎么能这样做呢。我想看看列表A中的一项是否包含在B中的一个字符串中?
goodFiles = filter(fileFilter, htmlfiles)
a = ['a','b','c','d','g']
b = ['a','c','g','f','z']

list(set(a).intersection(b)) # returns common elements in the two lists