在Python中划分元组值

fzwojiic  于 2023-07-01  发布在  Python
关注(0)|答案(2)|浏览(109)

如何根据它们的键划分以下元组值?我有以下内容:

numerator_list = [('Sam', 10), ('Alex', 8), ('Tom', 12)]
denominator_list = [('Alex', 2), ('Tom', 3), ('Sam',5)]

我想根据公共密钥名称 * 将分子列表的值除以分母列表 * 的值。出于演示目的,我希望输出如下:

my_output = [('Sam', 2), ('Alex', 4), ('Tom', 4)]
xbp102n0

xbp102n01#

你可以将2个元素的元组列表转换为字典,并使用set交集来保留公共键:

num = dict(numerator_list)
den = dict(denominator_list)

my_output = {}
for key in set(num).intersection(den):
    if den[key] != 0  # avoid ZeroDivisionError
        my_output[key] = num[key] / den[key]

输出:

>>> my_output
{'Sam': 2.0, 'Alex': 4.0, 'Tom': 4.0}

有了dict的理解:

my_output = {key: num[key] / den[key] for key in set(num).intersection(den) if den[key] != 0}
fkaflof6

fkaflof62#

你可以这样做

numerator_list = [('Sam', 10), ('Alex', 8), ('Tom', 12)]
denominator_list = [('Alex', 2), ('Tom', 3), ('Sam',5)]
d = dict(denominator_list)
c = [(name, t/d[name]) for name, t in numerator_list]

相关问题