繁体   English   中英

遍历字典的 values()

[英]iterating over values() of dictionary

我试图通过使用 for 循环来标记字典的每个值,但出现错误:'float' object 不可迭代。 我的代码是:

for doc, answers in answers.items():
    for answer in answers:
        if doc not in tokenized_answers:
            tokenized_answers[doc] = [tokenize(answer, tokenizer)]
        else:
            tokenized_answers[doc].append(tokenize(answer, tokenizer))

它显示错误:for answer in answers

我如何遍历 dict.values() 的值?

for doc, something_other_than_answers in answers.items():
   ...

看起来您的答案之一不是可迭代的,以避免错误并仅在可迭代对象上运行,您可以尝试除了检查 TypeError

 for doc, answers_items in answers.items():
    try: 
        for answer in answers_items:
            if doc not in tokenized_answers:
                tokenized_answers[doc] = [tokenize(answer, tokenizer)]
            else:
                tokenized_answers[doc].append(tokenize(answer, tokenizer))
    except TypeError:
        continue

这将跳过 for 循环中的答案值,以防它不是像 float 这样的可迭代对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM