【问题标题】:accessing item in a python loop with conditions使用条件访问python循环中的项目
【发布时间】:2017-10-03 09:02:56
【问题描述】:

假设我有一个这样的字典列表:

data = [
{'views' : views,
 'ratings' : ratings,
 'link' : link
},
{'views' : views,
 'ratings' : ratings,
 'link' : link
},
{'views' : views,
 'ratings' : ratings,
 'link' : link
},
{'views' : views,
 'ratings' : ratings,
 'link' : link
},
...
...
]

如何获得查看次数超过 500000 且评分超过 80 的项目的链接? 这里的问题是无论我尝试什么,它基本上都会打印出所有链接而不经过条件。

【问题讨论】:

  • 那么你有什么尝试!?

标签: python list loops dictionary if-statement


【解决方案1】:

您可以使用列表推导!

[each['link'] for each in data if int(each['ratings'])>80 and int(each['views'])>500000 ]

注意 - 如果您不确定变量类型,请在比较之前将其类型转换为整数!

你有两个条件!

  • 浏览量 > 500000
  • 收视率 > 80

由于您的数据是一个字典列表,因此使用 items(dict) 作为 each 遍历列表并从该列表中获取 list 键!

希望对你有帮助!

【讨论】:

  • 仍然无法按预期工作。不满足条件就获取所有链接。
  • 您的视图和评分变量是字符串还是整数?
  • 我已经添加了将变量类型转换为整数的编辑!
【解决方案2】:

links = [item['link'] for item in data if item['views'] > 500000]

这个问题太简单了,不适合这个网站。

【讨论】:

  • 我只打印符合条件的项目时遇到问题。这再次获取列表中的所有链接。
  • @TianchengXu 不,它没有。结果是所有满足item['views'] > 500000的项目
猜你喜欢
  • 2022-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-23
  • 2021-02-22
  • 2021-03-19
  • 1970-01-01
相关资源
最近更新 更多