gpt4 book ai didi

python - 如何以不可知对象是列表还是字典的方式迭代对象?

转载 作者:行者123 更新时间:2023-11-30 23:01:15 25 4
gpt4 key购买 nike

作为我尝试编写的一些代码的一部分,我尝试在使用之前验证一些用户输入。我想做类似于下面的事情,无论集合是列表还是字典,其操作都相同,最好不必总是将其转换为两者之一。

list_or_dict = {0:7, 1:12}  # or [7, 12]
for addr, value in list_or_dict.items():
if addr > addr_max:
raise Exception()
if value > val_max:
raise Exception()

编辑:

需要明确的是,我只期望字典的整数键。另外,如果只是出于一致性原因,我希望列表的索引是一个地址。

最佳答案

我会使用 enumerate(list_or_dict)list_or_dict.items() 取决于它是什么。然后,在这两种情况下您都有 (addr, value) 对,并且可以使用相同的代码。

>>> def check(list_or_dict):
items = enumerate(list_or_dict) if isinstance(list_or_dict, list) else list_or_dict.items()
for addr, value in items:
print(addr, value)

>>> check({0:7, 1:12})
(0, 7)
(1, 12)
>>> check([7, 12])
(0, 7)
(1, 12)

关于python - 如何以不可知对象是列表还是字典的方式迭代对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34972016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com