两个列表找不到共同元素

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

我正在编写一个小Python程序,它应该找到两个数字之间的最大公约数。到目前为止,一切都很顺利,但我无法让程序在程序提供的两个列表中找到正确的公共元素。 您还可以看到列表“combines_prime_lst”在“common_member()”函数中分配,但当代码返回“ggT()”函数时显示为空。该变量在代码顶部被分配为空列表。

我检查了,列表实际上是列表,我尝试使用 junction() 函数和 & 方法。我得到的输出总是错误的。

combined_prime_lst = common_member(prime_number_lst_1, prime_number_lst_2)
    print("Common elements 2:", combined_prime_lst)

    print("Der ggT von", number_1, "und", number_2, "ist:", combined_prime_lst)
def common_member(lst_1, lst_2):
    lst1 = set(lst_1)
    lst2 = set(lst_2)

    combined_prime_lst = list(set(lst1).intersection(lst2))
    print("Common elements:", combined_prime_lst)
    if combined_prime_lst == []:
        print("Keine gemeinsamen Elemente.")

最后这是我运行程序时得到的输出。

Was ist deine erste Zahl? 36
Wie lautet deine zweite Zahl? 66
Fist list: [2, 2, 3, 3]
Second list: [2, 3, 11]
Common elements 2: []
Der ggT von 36 und 66 ist: []
python list greatest-common-divisor
1个回答
0
投票

您遇到的问题是因为您将 common_member(lst_1, lst_2); 的结果分配给“combined_prime_lst”;但这个函数实际上并没有返回任何东西。因此,在函数“combined_prime_lst”内部有一个值,但在其外部您要为其分配“None”

这是我修改代码的方法:

prime_number_lst_1 = [2, 2, 3, 3]
prime_number_lst_2 = [2, 3, 11]

def common_member(lst_1, lst_2):
    lst1 = set(lst_1)
    lst2 = set(lst_2)

    combined_prime_lst = list(set(lst1).intersection(lst2))
    print("Common elements:", combined_prime_lst)
    if combined_prime_lst == []:
        print("Keine gemeinsamen Elemente.")

    return combined_prime_lst

combined_prime_lst = common_member(prime_number_lst_1, prime_number_lst_2)
print("Common elements 2:", combined_prime_lst)

number_1, number_2 = combined_prime_lst
print("Der ggT von", number_1, "und", number_2, "ist:", combined_prime_lst)

输出:

Common elements: [2, 3]
Common elements 2: [2, 3]
Der ggT von 2 und 3 ist: [2, 3]
© www.soinside.com 2019 - 2024. All rights reserved.