【问题标题】:How to check for multiple keys in a dictionary, and then do something with each of them?如何检查字典中的多个键,然后对它们中的每一个做一些事情?
【发布时间】:2017-09-06 20:16:48
【问题描述】:

我正在尝试进行一些 TastyPie 验证,但我对 Python(和一般编程)相对较新,并且对 TastyPie 完全陌生,因此欢迎提供帮助。

bundle.data 是字典,而我

  1. 然后想检查字典中是否存在键

  2. 对每个键的值进行更多验证。

示例代码:

class SampleClass(Validation):

    def is_valid(self, bundle, request=None):
        errors = defaultdict(list)

        for number in (bundle.data['number_one'], bundle.data['number_two']):
            if number not in bundle.data:
                errors[number] = ['missing field']
            else: 
            # Do more stuff with number

最pythonic的方法是什么?

我认为for number in.... 语句和if number not in bundle.data 语句是多余的。那是对的吗?如何结合检查两个数字是否都是字典中的键并将它们分配给变量名,以便我可以对两者进行处理?

谢谢!

【问题讨论】:

    标签: python-2.7 dictionary tastypie


    【解决方案1】:

    这不是 Tastypie 的问题。这是 Python 的问题。

    检查存在使用:

    for key in [key1, key2]:
        if key not in my_list:
            # key not exist
        else:
            # key exist
    

    还有你的代码:

    class SampleClass(Validation):
    
        def is_valid(self, bundle, request=None):
            errors = defaultdict(list)
    
            for number in ('number_one', 'number_two'):
                if number not in bundle.data:
                    errors[number] = ['missing field']
                else: 
                    value = bundle.data[number]
                    # Do more stuff with number
    

    我认为 for number in.... 语句和 if number not in bundle.data 语句是多余的。对吗?

    这段代码没有意义。如果 key1 或 key2 不存在,则引发 KeyError

    如何结合检查两个数字是否都是字典中的键并将它们分配给变量名,以便我可以同时处理这两个数字?

    if key1 in data and key2 in data:
        val1 = data[key1]
        val2 = data[key2]
    

    【讨论】:

      猜你喜欢
      • 2011-05-24
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 2015-08-15
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      相关资源
      最近更新 更多