【发布时间】:2017-02-01 19:03:37
【问题描述】:
我查看了另一个带有此标题的帖子,但我很困惑,因为我的值已经是整数。我希望脚本查看每个键的值(具有多个值的数组),通过使其成为列表来对数组进行排序,然后遍历排序和转换后的列表的值,从第二个中减去第一个,然后从第三个中减去第二个等,将差异存储在列表中。
b = {"a":[5,2,1],"b":[8,4,3]}
for k in b.values():
eVals = []
#print listVals
x = 0
for i in sorted(k):
dif = i[x+1] - i[x]
print dif
eVals.append(dif)
x +=1
这是错误:
Traceback (most recent call last):
File "C:\Python27\ArcGIS10.2\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 323, in RunScript
debugger.run(codeObject, __main__.__dict__, start_stepping=0)
File "C:\Python27\ArcGIS10.2\Lib\site-packages\pythonwin\pywin\debugger\__init__.py", line 60, in run
_GetCurrentDebugger().run(cmd, globals,locals, start_stepping)
File "C:\Python27\ArcGIS10.2\Lib\site-packages\pythonwin\pywin\debugger\debugger.py", line 654, in run
exec cmd in globals, locals
File "N:\Python\test_dict.py", line 1, in <module>
b = {"a":[5,2,1],"b":[8,4,3]}
TypeError: 'int' object has no attribute '__getitem__'
【问题讨论】:
-
i是一个整数,您正尝试使用i[x+1] - i[x]像列表一样访问它。 -
我认为错误消息来自错误的行。
i[x+1]和i[x]部分会导致该错误,而不是最初的 dict 构造。 -
列表的最后一个值应该减去什么?
-
dif应该如何存储? -
最后一个值很好。我想我需要输入一个条件。
标签: python python-2.7 dictionary