python - 如何在python中一起做一个衬里“if”和“for-loop”
问题描述
所以我一直喜欢让我的代码更干净,而且我一直坚持做一些可能很容易做到的事情。
基本上我目前所做的是:
for raw_product in r.json().get('data'):
if raw_product.get('countdown') is False:
print(raw_product.get('url'))
我一直在想办法把它变成一个班轮。到目前为止,我只来过
test = ['{}'.format(raw_product.get('url')) for raw_product in r.json().get('data')]
但是在一个衬里内,缺少 if 语句,我想知道是否可以在['{}'.format(raw_product.get('url')) for raw_product in r.json().get('data')]
?
解决方案
试试这个生成器:
gen = (repr(x.get('url')) for x in r.json().get('data') if not x.get('countdown'))
或列出:
li = [repr(x.get('url')) for x in r.json().get('data') if not x.get('countdown')]
使thise代码不干净的原因不是理解,而是这种'get'方法。将其与:
li = [x.url for x in r.json_data if not x.countdown]
. 是比较清楚的。
推荐阅读
- javascript - 如何使用 javascript 推送评论?
- r - 选择另一个标记后,如何清除已添加到传单地图的标记?
- iis - 诊断在 IIS 上运行的网站中的零星锁定
- java - 当我尝试在 JPQL 中使用 Case 语句时出现问题
- python - 比较不同 pandas 数据集中的 2 列,如果值存在于第二个数据集中,则替换值
- javascript - 如何与 momentjs 约会?
- c++ - 插入 unordered_map 时的 bad_alloc
- automated-tests - 如何使用绝对路径而不是类路径来读取文件
- c# - 在 Jpath 中转义单引号
- python-3.x - 无法从命令行运行 tensorboard 来评估我的模型的效率