如何根据另一个列表从 python 列表中获取元素

How to get element from a python list based on another list

我在 first_list 中有一个 URL 列表。现在我只想获取那些满足 argument_lst 条件的 URL。

在argument_lst中,我提供了一些具体的域名。我只需要 first_list 中的那些 URL 如果它们与 argument_lst.

匹配

这是我的代码:

first_list = ['https://www.abc45f.com/r/comments/dummy_url/', 'https://dfc.com/test_test/', 'https://www.kls.com/fsdnfklns_dfdsj','https://example11.com/app/1642038659010248255/']

argument_lst = ['abc45f.com', 'example11.com',5,7,8]
bl_lst = []
for lst in first_list:
    all_element = lst
    bl_lst.append(all_element)

for l in argument_lst:
    if l in bl_lst:
        print(l)

我想实现这样的目标:

https://www.abc45f.com/r/comments/dummy_url/
https://example11.com/app/1642038659010248255/

有人能帮帮我吗?

谢谢

你可以用一个异常处理块来实现,

first_list = ['https://www.abc45f.com/r/comments/dummy_url/', 'https://dfc.com/test_test/', 'https://www.kls.com/fsdnfklns_dfdsj','https://example11.com/app/1642038659010248255/']

argument_lst = ['abc45f.com', 'example11.com', 5, 7, 8]

output_list = []

for arg in argument_lst:
    for el in first_list:
        try:
            if arg in el:
                output_list.append(el)
        except TypeError:
            continue

print(output_list)

try-catch 块将尝试查找 argument_list 中的元素是否在 first_list 的任何元素中。如果是,则代码将 first_list 的成员附加到 output_list。如果不是,它只是跳过它。

但是,如果参数不是字符串(在您的情况下是整数),代码将引发 TypeError 异常,因为您将尝试比较整数和字符串。在这种情况下,try-catch 块将处理异常并绕过它 - continue 语句将简单地转到下一个参数。只有当异常是 TypeError 类型时才会发生这种情况,其他任何情况仍会导致代码崩溃。尽可能缩小代码正在处理的异常非常重要,以允许它在实际意外的事情上崩溃。