如何在列表中访问字典

时间:2018-06-19 16:37:27

标签: python list dictionary

我如何同时访问“ x”和“ y”以计算具有以下内容的词典列表中连续词之间的差异。

data_points = [{ "y": 621, "x": 399, "time ns": 107353592,
                 "time ms": 1529423113, "cameraID": 0 },
               { "y": 621, "x": 399, "time ns": 111057583,
                 "time ms": 1529423113, "cameraID": 0 },
               { "y": 621, "x": 399, "time ns": 114741998,
                 "time ms": 1529423113, "cameraID": 0 },
               { "y": 621, "x": 399, "time ns": 118388882,
                 "time ms": 1529423113, "cameraID": 0 }
              ]

我尝试了这个但没有用

data_points[0]['x']['y']

4 个答案:

答案 0 :(得分:2)

不幸的是,您不能使用这种语法同时访问多个字典键,但是可以通过列表理解轻松地进行操作。例如,要从列表的第一个字典中获取xy,可以执行以下操作:

[data_points[0][i] for i in ['x', 'y']]

获得:

[399, 621]

答案 1 :(得分:1)

我想你想要这个:

abs(data_points[0]['x']-data_points[0]['y'])

答案 2 :(得分:1)

使用operator.itemgetter

from operator import itemgetter

res = itemgetter('x', 'y')(data_points[0])

(399, 621)

答案 3 :(得分:0)

yourVariable = data_points[0]["x"]
anotherVariable = data_points[0]["y"]
newList = "{str(yourVariable)} {str(anotherVariable)}".split(" ")
accessX = newList[0]
accessY = newList[1]

如果您想同时比较两者:

if accessX and accessY == "something like this":
     #then do whatever you want

现在您可以同时访问两个字符串,然后只需使用split()方法并输入所需的任何单词即可。