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

时间:2019-04-05 09:53:03

标签: python-3.7

当我执行附带的代码时,除“ return(exec(string))”部分外,其他所有东西都工作正常。我无法获得它返回我正在寻找的{1}的共同价值。

我尝试执行“ return(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}。实际结果是什么也没返回。

1 个答案:

答案 0 :(得分:0)

是的,我提出了一个问题,但是我找到了解决方案,只是想分享它,以免浪费任何人的时间。我所做的就是更改行号:

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

收件人:

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

并且有效,返回了{1}的期望值