我正在开发一个更大的程序,需要对一个词典列表进行排序。我使用单独列表中的整数值,并将它们与每个字典中与特定键相关联的值进行比较。我对此结果搞砸了,我不知道为什么......帮助!
我的代码:
new_list_of_dictionaries = []
b = [{1: 'one', 'sam': '2,300'}, {3: 'thee', 'sam': '4,000'}]
list_of integers = [2300, 2300]
for i in list_sof_integers:
for a_dictionary in b:
r = a_dictionary["sam"].replace(',','')
#print r
#r2 = r.replace(',','')
#print r2
if i == int(r):
new_list_of_dictionaries.append(a_dictionary)
print new_list_of_dictionaries
答案 0 :(得分:0)
看起来您正在根据单独列表中的数字过滤字典列表。你可以使用列表理解,过滤条件如下
[c_dict for c_dict in b if int(c_dict["sam"].replace(',','')) in list_of_ints]
in
运算符将在list_of_ints
中查找整数值。如果你想加快速度,你可以将list_of_ints
转换成一个集合,就像这样
set_of_ints = set(list_of_ints)
[c_dict for c_dict in b if int(c_dict["sam"].replace(',','')) in set_of_ints]