Python - 字典列表中的值

5 投票
3 回答
12390 浏览
提问于 2025-04-16 15:44

可能重复的问题:
在一堆字典中,查找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 个回答

1

好吧,在你的情况下,你的 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 关联起来?

4

map(lambda string: any(map(lambda item: item['value'] == string, dict)), results) 这段代码会对给定的 results 返回一个 [True, False] 的列表。虽然在这里使用 for 循环会更合适,因为这样可以在找到某个值后立即停止内层循环。而 any 会检查 dict 中的所有项目。

另外,不要把列表命名为 dict,也不要使用内置的类型或函数名称作为变量名。

7

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当我们想要检查一个数字是否在某个范围内,或者判断一个用户输入的内容是否符合要求。这种情况下,我们就会用到“条件语句”。

条件语句就像是一个分岔路口,程序会根据条件的真假来决定走哪条路。如果条件成立,程序就会执行某个操作;如果条件不成立,程序就会执行另一个操作。

举个简单的例子,假设我们有一个数字,如果这个数字大于10,我们就打印“这个数字很大”;如果小于或等于10,我们就打印“这个数字不大”。这样,我们就可以根据不同的情况,给出不同的反馈。

在编程中,使用条件语句可以让我们的程序更加灵活和智能,能够根据不同的输入做出不同的反应。

for r in result:
  for d in dict:
    if d['value'] == r:
       print "ok"

撰写回答