在上面的列表中,这个iterable是如何工作的?

2024-04-20 08:28:04 发布

您现在位置:Python中文网/ 问答频道 /正文

sum((float(d['cty']) for d in mpg)) / len(mpg)

输出:16.86

当我们处理一个列表并得到对应的值时,d['cty'])如何循环通过mpg?你知道吗

[OrderedDict([('', '1'),
          ('manufacturer', 'audi'),
          ('model', 'a4'),
          ('displ', '1.8'),
          ('year', '1999'),
          ('cyl', '4'),
          ('trans', 'auto(l5)'),
          ('drv', 'f'),
          ('cty', '18'),
          ('hwy', '29'),
          ('fl', 'p'),
          ('class', 'compact')]),
OrderedDict([('', '2'),
          ('manufacturer', 'audi'),
          ('model', 'a4'),
          ('displ', '1.8'),
          ('year', '1999'),
          ('cyl', '4'),
          ('trans', 'manual(m5)'),
          ('drv', 'f'),
          ('cty', '21'),
          ('hwy', '29'),
          ('fl', 'p'),
          ('class', 'compact')]),
OrderedDict([('', '3'),
          ('manufacturer', 'audi'),
          ('model', 'a4'),
          ('displ', '2'),
          ('year', '2008'),
          ('cyl', '4'),
          ('trans', 'manual(m6)'),
          ('drv', 'f'),
          ('cty', '20'),
          ('hwy', '31'),
          ('fl', 'p'),
          ('class', 'compact')])]

Tags: transmodelyearclassa4ordereddictflcty
1条回答
网友
1楼 · 发布于 2024-04-20 08:28:04

粗略地说,((float(d['cty']) for d in mpg))的for循环等价物是

result = []
for d in mpg:
      result.append(float(d['cy'])

有三个mpg元素。第一个有'cty': '18'。因此,当输入键'cty'时,得到值'18',然后将其转换为浮点值18.0。你同样得到21.020.0。它们的总和是59.0。不过,我不明白这是怎么回事。你知道吗

相关问题 更多 >