Python - 字典列表中的值
可能重复的问题:
在一堆字典中,查找Python字典的值的最佳方法是什么?
我有一个字典列表,格式是:
my_dict_list = []
my_dict_list.append({'text':'first value', 'value':'number 1'})
my_dict_list.append({'text':'second value', 'value':'number 2'})
my_dict_list.append({'text':'third value', 'value':'number 3'})
我还有另一个列表,格式是:
results = ['number 1', 'number 4']
我该如何遍历这个results
列表,检查某个值是否在dict
中,比如:
for r in results:
if r in my_dict_list:
print "ok"
3 个回答
好吧,在你的情况下,你的 dict 变量其实不是一个字典,而是一个包含三个字典的列表。每个字典里都有两个键(text 和 value)。注意,我假设 value 要么是一个变量,要么是你忘了加引号(我在这里加上了引号)。
[{'text': 'second value', 'value': 'number 2'}, {'text': 'third value', 'value': 'number 3'}, {'text': 'first value', 'value': 'number 1'}]
如果这正是你想要的,那么你可以使用类似下面的代码:
mySetOfValues=set([x['value'] for x in my_dict_list])
for r in results:
if r in mySetOfValues:
print 'ok'
不过,如果我理解得没错,你可能是想创建一个字典,把第一个值和数字 1 关联起来?
map(lambda string: any(map(lambda item: item['value'] == string, dict)), results)
这段代码会对给定的 results
返回一个 [True, False]
的列表。虽然在这里使用 for
循环会更合适,因为这样可以在找到某个值后立即停止内层循环。而 any
会检查 dict
中的所有项目。
另外,不要把列表命名为 dict
,也不要使用内置的类型或函数名称作为变量名。
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当我们想要检查一个数字是否在某个范围内,或者判断一个用户输入的内容是否符合要求。这种情况下,我们就会用到“条件语句”。
条件语句就像是一个分岔路口,程序会根据条件的真假来决定走哪条路。如果条件成立,程序就会执行某个操作;如果条件不成立,程序就会执行另一个操作。
举个简单的例子,假设我们有一个数字,如果这个数字大于10,我们就打印“这个数字很大”;如果小于或等于10,我们就打印“这个数字不大”。这样,我们就可以根据不同的情况,给出不同的反馈。
在编程中,使用条件语句可以让我们的程序更加灵活和智能,能够根据不同的输入做出不同的反应。
for r in result:
for d in dict:
if d['value'] == r:
print "ok"