for li in list2:
tid=li
for i,li2 in enumerate(list):
s2=li2
if (s2.find(tid)>0 ):
i+=1
s3=list[i]
y=s3.find('RUNNABLE')
if( y>0 ) :
dict={tid:[].append('RUNNABLE')
我正在尝试附加字典和列表。 外循环将从列表中获取元素,该元素将最终成为键,而内循环将追加列表。 但输出为{'tid = value':None}
答案 0 :(得分:0)
问题出在dict={tid:[].append('RUNNABLE')
中。试试这个:
print([].append('RUNNABLE'))
append
的返回值为None
。您想做的可能是这样:
a = {}
a.setdefault('foo', []).append('RUNNABLE')
print(a) # {'foo': ['RUNNABLE']}
a.setdefault('foo', []).append('RUNNABLE')
print(a) # {'foo': ['RUNNABLE', 'RUNNABLE']}
如果setdefault
方法不存在,则将第二个参数插入键下并返回。否则,它将返回它。这样的单次使用是:
if 'foo' not in a:
a['foo'] = []
a['foo'].append('RUNNABLE')
另一个解决问题的方法是defaultdict,但是对于像这样的简单案例来说,这有点过分了。
答案 1 :(得分:0)
您的代码有点混乱,这是建议吗?
list_keys = ['a', 'b', 'c']
list_values = ['not RUNNABLE', 'not RUNNABLE', 'c RUNNABLE']
list_dict = []
for key in list_keys:
for index, value in enumerate(list_values):
if key in value:
if 'RUNNABLE' in value:
list_dict.append({key: ['RUNNABLE']})
print(list_dict)