我想在代码中节省一些空间,所以我写了这个简单的单行for循环。从k:[v,v]的字典中创建一个字典,其中第一个值是键,第二个值保持值。现在,我的字典中出现一个例外,即原始字典只有一个值,第一个。
glyphs_dict = {'dotaccent': [103, 86], 'ring': [104], 'caron': [105, 85]}
id_dict = {k:v for k,v in list(glyphs_dict.values())}
我试图做类似
id_dict = {k:v for k,v in list(glyphs_dict.values()) if k and v}
但不起作用。如何跳过列表中只有一个值的键?
答案 0 :(得分:3)
您可以尝试以下操作:
id_dict = {v[0]:v[1] for v in glyphs_dict.values() if len(v) == 2}
如果长度为2(对于 key 和 value ),这将获得dict的所有值作为新键和值
答案 1 :(得分:1)
这也有效:
glyphs_dict = {'dotaccent': [103, 86], 'ring': [104], 'caron': [105, 85]}
id_dict = {k: v[0] for k, *v in glyphs_dict.values() if v}
答案 2 :(得分:1)
如果值大于1,这将确保添加dict
id_dict = {key:value for key,value in glyphs_dict.items() if len(value)>1}
答案 3 :(得分:0)
这将不返回任何错误
max=255
step = 255//t
for i in range(0,t):
red = 255 - (t*step)
green = 0
blue = 255 - red
RGBtriplet = (red, green, blue)
输出:
blue = 255 * (0.5 * (1 + sin((t*pi)-(pi/2))))
green = 0
red = 255 - blue
这将跳过带有一个值的列表的值,仅接受带有2的列表
id_dict = {k:v for k,v in list(glyphs_dict.values())}
输出:
{'dotaccent': [103, 86], 'ring': [104], 'caron': [105, 85]}