def __init__(self, devices, queue):
'''
'''
self.devices = devices
self.queue = queue
values = {k:0 for k in devices.keys()}
values[0xbeef] = len(values) # the number of devices
super(CallbackDataBlock, self).__init__(values)
有人可以帮我解释以下两行:
values = {k:0 for k in devices.keys()}
k:0
做了什么? values[0xbeef] = len(values) # the number of devices
{0xbeef: length}
会附加在dict
?答案 0 :(得分:1)
k
是字典中的字段。所有字段的集合都存储在device.keys()
中,这很可能是一个列表,我们遍历列表,获取字段名称并将其初始化为零。答案 1 :(得分:0)
{k:0 for k in devices.keys()}
创建一个包含所有键的字典,并为所有值创建0。您的评估是正确的,它会使用{value of 0xbeef : number of keys in the dictionary}
答案 2 :(得分:0)
在python文档中,您可以看到List Comprehensions
expression for item in list if conditional else
或简单用法:
expression for item in list
我们可以使用列表数据类型中的list = [0,1,2,3,4,5]
a = [x for x in list]
print (a)
打印:
[1,2,3,4,5]
我们有:
a = [x*2 for x in list]
print (a)
打印:
[2,4,6,8,10]
我们有这样的语法:
{key1:value1, key2:value2, . . .}
和示例:
list = [0,1,2,3,4,5]
d = [k:0 for k in list]
print (d)
示例k:0
maens中的:将0
设为每个k的值
打印:
{1: 0, 2: 0, 3: 0, 4: 0, 5: 0}
python字典必须使用有用的方法:dict.keys()
,dict.values()
当我们使用dict.keys
时,python返回一个dict键的列表
d = {"name":"sam", "job":"programer", "salary":"25000"}
print(d.keys())
print(d.values())
打印:
['name','job','salary']
['sam','programer','25000']
用于在我们使用的字典中添加新对象:
d[newkey]= newValue
例如:
d[10] = 'mary'
print(d[10])
打印:
'mary'
代码
1)k:0
maens:将0
作为每个k的值
2)0xbeef是hex
代码== 48879十进制
values[48879] = len(values)
按名单长度填写。