如何执行一个字符串来检查多个列表中的相互值

问题描述 投票:1回答:1

当我执行附加的代码时,一切正常,除了“return(exec(string))”部分。我无法让它返回我正在寻找的{1}的相互价值。

我已经尝试过“返回(eval(string))”,而这也不起作用。

def match(listoflists):
    string = ""

    if len(listoflists) > 1:
        i = 0

        while i < len(listoflists):
            string = string + " & set(listoflists[" + str(i) + "])"

            i += 1

    string = string[3:]
    return(exec(string))

match([[1, 2, 3], [1, 7, 8], [1, 4, 5], [1, 6, 9]])

预期结果为{1}。实际结果是没有返回任何内容。

python-3.7
1个回答
0
投票

是的,我提出了这个问题,但我找到了解决方案并且只是想分享它,以免浪费任何人的时间。我所做的就是改变线条:

string = string[3:]
return(exec(string))

至:

string = "print(" + string[3:] + ")"
return(exec(string))

这是一种享受,返回{1}的预期值

© www.soinside.com 2019 - 2024. All rights reserved.