你好,我有列表样本和字典的列表
sample=[[0,0,1440,1440],[3,23040,1440,24480]]
machine_to_intervals[0].append(model.NewIntervalVar(0,0 ,0 , 'week'))
所需的输出是
machine_to_intervals[0].append(model.NewIntervalVar(0,1440 ,1440 , 'week'))
machine_to_intervals[3].append(model.NewIntervalVar(23040,1440 ,24880 , 'week'))
我尝试了以下方法
sample=[[0,0,1440,1440],[3,23040,1440,24480]]
machine_to_intervals={}
for list in sample:
machine_to_intervals[sample[0]].append(model.NewIntervalVar(sample[1], sample[2], sample[3],'week'))
但低于错误
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-7588d30dcdef> in <module>
3
4 for list in sample:
----> 5 machine_to_intervals[sample[0]].append(model.NewIntervalVar(sample[1], sample[2], sample[3], 'week'))
6
TypeError: unhashable type: 'list'
答案 0 :(得分:1)
您的sample
列表是二维的,因此您需要在两个维度上进行迭代/索引。您似乎在尝试的道路上步入了正确的轨道,但是您应该索引list
(来自for list in sample
语句)。
在sample
的for循环中替换list
引用,它应该可以工作。
此外,仅供参考,将变量命名为python对象类型(例如list
)也不是一个好习惯。最好将其重命名为其他名称,例如:
for data in sample:
machine_to_intervals[data[0]].append(model.NewIntervalVar(data[1], data[2], data[3],'week'))
答案 1 :(得分:0)
sample
是一个列表列表,您想创建一个字典machine_to_intervals
,其中的条目由sample
的内部列表给出,键是第一个元素,值是由其他3个元素构成。因此,您可以执行以下操作:
machine_to_intervals = { x[0]: model.NewIntervalVar(x[1], x[2], x[3], 'week') for x in sample }