Python中OrderedDict()的iteritems()有什么问题?

2 投票
2 回答
1621 浏览
提问于 2025-04-16 23:24

这是我的有序字典(OrderedDict):

 >>> dic = OrderedDict([('16-17,1,5,BUY,BUY,-6,9', 10), ('19-20,1,1,BUY,BUY,-1,1',1)])
 >>> dic
     OrderedDict([('16-17,1,5,BUY,BUY,-6,9', 10), ('19-20,1,1,BUY,BUY,-1,1', 11)])
 >>> for k,v in dic.iteritems():
 ...     print k
 ...     k1 = k.split(',')
 ...     print k1
 ...     print "value",v
 ...     print k1.append(v)
 ... 
 16-17,1,5,BUY,BUY,-6,9
 ['16-17', '1', '5', 'BUY', 'BUY', '-6', '9']
 value 10
 None
 19-20,1,1,BUY,BUY,-1,1
 ['19-20', '1', '1', 'BUY', 'BUY', '-1', '1']
 value 11
 None

为什么它会打印出“None”?

2 个回答

7

因为 append 这个方法不返回任何东西。

print 会显示 k1.append(v) 的返回值,但 k1.append(v) 其实没有返回值。

2

这不是OrderedDict的问题。

append这个方法会返回None,但它会直接修改原来的列表。所以你可以把那一行替换成

k1.append(v)
print k1

撰写回答