В чем проблема с iteritems () в OrderedDict () в python? - PullRequest
2 голосов
/ 11 августа 2011

Вот мой словарь 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

Почему это печать "Нет"?

Ответы [ 2 ]

7 голосов
/ 11 августа 2011

Поскольку append ничего не возвращает.

print печатает возвращаемое значение k1.append(v), но нет возвращаемого значения из k1.append(v)

2 голосов
/ 11 августа 2011

Это не проблема с OrderedDict.

append возвращает None, но изменяет список на месте. Таким образом, вы можете заменить строку на

k1.append(v)
print k1
...