我想检查-colval
中的values
中是否存在dictionary
项目
如果存在,则附加该值的对应的key
,否则附加colval
项。
CODE
这就是我所做的
colormap = []
for col in colval:
for k,v in master_colors.items():
for x in v:
if col == x:
colormap.append(k)
else:
colormap.append(col)
但是,这给了我len(colormap)
比1000
多45
,实际上应该是class Department < ApplicationRecord
self.table_name = 'custom_departments'
end
,这是colval的长度
答案 0 :(得分:1)
您应该测试颜色是否在列表中,而不是最后一个(最内部的)for 循环。如果是这样,则打破第二个循环。
colormap = []
for col in colval:
for k,v in master_colors.items():
if col.lower() in v:
colormap.append(k)
break
colormap.append(col)
答案 1 :(得分:1)
问题在于colormap.append(col)在最里面的循环中。对于每个colval值,它将遍历master_colors dict中的每个值,并且每次与该特定值不匹配时,都会追加colval。相反,您需要等待直到遍历整个字典并确认当前colval值不匹配。只有这样,您才可以附加该colval值。
此外,您现在编写的方式区分大小写。如果您同时更改两个要与小写字母比较的字符串(如下所示),则效果很好。
colormap = []
for col in colval:
match = False
for k,v in master_colors.items():
for x in v:
if col.lower() == x.lower():
colormap.append(k)
match = True
if not match:
colormap.append(col)