我在下面有两个for循环。在第一个for循环中,我遍历tstLst1中的元素,然后对每个元素进行遍历tstLst2中的元素,测试每个元素是否大于5,然后将tstLst2中的元素追加到新元素中 列出tstEmpt1。然后,我将tstLst1的每个元素的键列表从tstLst2的值列表更新为dict。我在下面收到“ Nonetype”错误,我不确定为什么。有人可以指出问题并提出解决方案吗?
代码:
tstLst1=[1,2,3]
tstLst2=[2,5,6]
tstDict1={}
for j in tstLst1:
tstEmpt1=[]
for i in tstLst2:
if i >5:
tstEmpt1=tstEmpt1.append(i)
tstDict1=tstDict1.update({j:tstEmpt1})
错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-19-89e025227797> in <module>
16 tstEmpt1=tstEmpt1.append(i)
17
---> 18 tstDict1=tstDict1.update({j:tstEmpt1})
19
AttributeError: 'NoneType' object has no attribute 'update'
答案 0 :(得分:3)
您的问题是list.append()
返回None
,因此当您执行tstEmpt1=tstEmpt1.append(i)
时,您要追加元素并将None
分配给列表。由于None
没有属性'update'作为错误状态,因此引发下一次迭代。
与dictionary.update()
相同。
删除作业应为您解决问题:
for j in tstLst1:
tstEmpt1=[]
for i in tstLst2:
if i >5:
tstEmpt1.append(i)
tstDict1.update({j:tstEmpt1})