简体   繁体   English

遍历字典的 values()

[英]iterating over values() of dictionary

I am trying to tokenize each value of dictionary by using for loop but i am getting an error: 'float' object is not iterable.我试图通过使用 for 循环来标记字典的每个值,但出现错误:'float' object 不可迭代。 My code is:我的代码是:

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))

It's showing error in line: for answer in answers它显示错误:for answer in answers

how can i iterate through the values of dict.values()?我如何遍历 dict.values() 的值?

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

It's look like one of your answers is not an iterable to avoid the error and to run only on iterables you can make a try except to check for TypeError看起来您的答案之一不是可迭代的,以避免错误并仅在可迭代对象上运行,您可以尝试除了检查 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

That will skip the answers value from the for loop in case it's not an iterable like float.这将跳过 for 循环中的答案值,以防它不是像 float 这样的可迭代对象。

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

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