概述
我正在使用长度超过79个字符的列表理解.因此,我的文本编辑器正在尖叫着对我做些什么,并且在编码时要注意一下.
return [(i['user_id'],i['id']) for i in j['collection'] if i and i['user_id']]
所以,我试图打破界限,但现在它抱怨我的换行是出于视觉目的.
return [(i['user_id'],i['id']) for i in j['collection'] if i and i['user_id']]
在这样的泡菜中,男人该做什么?
编辑:基于答案,在这种情况下我选择了列表理解的可读性,现在它对读者更有意义:
tracks = set() for track in json['collection']: if track and track['user_id']: tracks.add((track['user_id'],track['id']))
但是如果你将它移动到一个更易读的格式,那么不仅你的行数会增加,而且你的可读性水平也会提高,这样就可以为你提供很多适当的变量名称,比如用户而不是i.这将使您在未来的维护变得更加容易,更不用说其他人是否需要查看它.
所以把这个例子放到实际的代码中,这就是我用它做的事情(使用一个很好的函数换行来使样本更容易阅读!):
j = {'collection': [{'id': 1,'user_id': 1}]} def get_qualified_users(users): qualified_users = [] for user in users: if user and user['user_id']: qualified_users.append((user['user_id'],user['id'])) return qualified_users print(get_qualified_users(j['collection']))
您可以轻松地将其复制/粘贴到您的interpetor中,看它是否有效.更重要的是 – 它非常容易维护和跟踪,在密封功能中封装了清晰的api.
总结
以上是编程之家为你收集整理的python – PEP 8和列表理解全部内容,希望文章能够帮你解决python – PEP 8和列表理解所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧