1

我正在做一个项目,其中我有一个列表,其中包含一个 dict 和一个 int 的元组。我正在尝试在每个字典中搜索一个名字,但我遇到了一些麻烦。

dicts = [ (somedict, 0), (someOtherDict, 5)]

在我只有一个字典列表之前,我可以轻松地搜索

def search(name):
    for d in reversed(dicts):
        if name in d: return d[name]

但是现在我有了一个元组列表,我不太确定如何搜索字典。任何帮助或建议将不胜感激。我现在很困惑。

4

2 回答 2

3

只需使用生成器表达式来获取您的 dicts:

def search(name):
    for d in (t[0] for t in dicts):
        if name in d: return d[name]

或者,您可以使用元组赋值:

def search(name):
    for d, _ in dicts:
        if name in d: return d[name]

但这假设您所有的元组都有 2 个值。

于 2012-11-24T20:56:04.897 回答
0

您需要使用 0 对枚举 dicts 的结果进行索引,因为那是您的 dict 在 dict/int 元组中的位置。

def search(name):
    for d in reversed(dicts):
        if name in d[0]: return d[0][name]
于 2012-11-24T20:58:04.607 回答