Python 编写一个名为";获取“U值等于”U 10“的“U元素”;

Python 编写一个名为";获取“U值等于”U 10“的“U元素”;,python,dictionary,Python,Dictionary,编写一个名为“获取元素”的函数,该函数的值等于10 给定一个字典和一个键,“get_elements_that_equal_10_at_a_value”返回一个列表,其中包含位于给定键的列表中所有等于10的元素 注: 如果列表为空,则应返回空列表 obj1 = {'key': [1000, 10, 50, 10]} output1 = get_elements_that_equal_10_at_a_value(obj1, 'key') print(output1) # --> [10, 1

编写一个名为“获取元素”的函数,该函数的值等于10

给定一个字典和一个键,“get_elements_that_equal_10_at_a_value”返回一个列表,其中包含位于给定键的列表中所有等于10的元素

注:

如果列表为空,则应返回空列表

obj1 = {'key': [1000, 10, 50, 10]}
output1 = get_elements_that_equal_10_at_a_value(obj1, 'key')
print(output1) # --> [10, 10]
如果列表不包含等于10的元素,则应返回空列表

obj1 = {'key': [1000, 10, 50, 10]}
output1 = get_elements_that_equal_10_at_a_value(obj1, 'key')
print(output1) # --> [10, 10]
如果给定键处的值不是列表,则应返回空列表

obj1 = {'key': [1000, 10, 50, 10]}
output1 = get_elements_that_equal_10_at_a_value(obj1, 'key')
print(output1) # --> [10, 10]
如果键不存在或其值为None,则应返回空列表

obj1 = {'key': [1000, 10, 50, 10]}
output1 = get_elements_that_equal_10_at_a_value(obj1, 'key')
print(output1) # --> [10, 10]
这是我到目前为止所拥有的

def get_elements_that_equal_10_at_a_value(obj, key):
    newList = []
    for key, value in obj.items():
        if (isinstance(value, (int, float)) and value == 10):
            newList.append(value)
        if (isinstance(value, list) and value == 10):
            newList.append(value)
        if not (isinstance(value, list)):
            return []
        if (isinstance(value, list) and value == None):
            return []
    
  
    return newList
这就是我得到的错误

AssertionError: Lists differ: [] != [10, 10]

你可能想调查一下 这可能正是您想要的:

def get_elements_that_equal_10_at_a_value(obj, key):
if not isinstance(obj.get(key), list):
    return[]
return [i for i in obj.get(key,[]) if i == 10]
给你:

def获取在值(obj,key)处等于10的元素:
值=对象获取(键)
如果不存在(值,列表):
返回[]
如果x==10,则返回[x代表x的值]

这是作业问题吗?这是我正在培训的一个项目的练习问题@非常感谢您的回复。你有没有办法写一个扩展版本?我对python和编码还是有点陌生,对理解方面也没有太多经验。帮助我学习理解的是在理解旁边看到扩展的代码。