Python:使用集合中的defaultdict搜索字典

2024-05-28 20:29:04 发布

您现在位置:Python中文网/ 问答频道 /正文

请在下面用loop例子建议使用defultdict in collections

我已经为defaultdict引用了这个链接

我的问题是如何在defaultdict in collections中编写下面的循环示例,如果找不到键B,则查找键A,即使找不到B,也返回Null。你知道吗

X = {'A': '1', 'B': '2', 'C': '3'}
Y = X['A'] if "A" in str(X) else X['B'] if "B" in str(X) else ("")

第一优先级:如果dict有'A',它将返回它的值-1,
第二优先级:如果dict有'B',它将返回它的值-2,
第三优先级:如果“A”、“B”不可用,则返回空白-“”

>>> from collections import defaultdict
>>> ice_cream = defaultdict(lambda: 'Vanilla')
>>>
>>> ice_cream = defaultdict(lambda: 'Vanilla')
>>> ice_cream['Sarah'] = 'Chunky Monkey'
>>> ice_cream['Abdul'] = 'Butter Pecan'
>>> print ice_cream['Sarah']
Chunky Monkey
>>> print ice_cream['Joe']
Vanilla
>>>

所需输出:

如果函数是用defaultdict写的。。我期待着像这样的事情

function(a, b) --will search a, then b, if both are unavailable return "" (blank)

如果dict中的ab参数不可用,我希望避免“KeyError”并返回blank/null

请帮忙。。你知道吗

提前谢谢。你知道吗


Tags: lambdainifelsecollectionsdictmonkeyprint
1条回答
网友
1楼 · 发布于 2024-05-28 20:29:04

如果要避免“KeyError”,并在a和b参数不可用时返回blank/null,可以使用try except。你知道吗

在此特定代码中,您可以使用:

a = {"A1": '1', "B": '2', "C": '3'}
try:
    result = a['A'] if "A" in str(a) else a['B'] if "B" in str(a) else ("")

except KeyError:
    result = ''

如果有用请告诉我! 您可以在此处获取更多信息:

8.3。处理异常https://docs.python.org/3/tutorial/errors.html

相关问题 更多 >

    热门问题