Python中的无索引和项目for循环

38

在Python中是否可能使用for循环而不需要索引和项? 我有类似以下的东西:

list_1 = []
for i in range(5):
    list_1.append(3)

以上代码可以正常工作,但是根据pep8编码规范来说不够好。它会提示:"未使用的变量 'i'".

有没有一种方法使得循环(不是while循环)在不需要索引和项的情况下进行?或者我应该忽略编码规范呢?


4
如果您不打算使用变量,建议按照惯例使用“_”。 - myildirim
2
不是针对一般问题的答案,但在这个特定的例子中,你可以这样做:list_1 = [3] * 5 - tobias_k
1
我想进一步阐述@tobias_k的评论,我的观点是,一个好的规则是要记住,如果你发现自己处于这种情况中,那么for循环可能不是最好的选择。 - Tonio
@SiHa,请安装pylint并在您的代码上运行它。 - Padraic Cunningham
我可能错了,但我认为PEP8中没有特别规定在循环中有未使用的变量时必须使用“_”,我在Pycharm上也从未收到过PEP8编码风格违规警告。 - Padraic Cunningham
显示剩余4条评论
2个回答

61

5
你所提供的问题的被接受答案中的评论建议使用 __(双下划线),这是完美的:它不会与 gettext 冲突,并且可以消除“未使用变量”的警告。 - Jerther

6

虽然@toine完全正确地使用了_,但你也可以通过列表推导式来进行优化:

list_1 = [3 for _ in range(5)]

这样可以避免 ITM (“先初始化,再修改”)反模式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接