【问题标题】:Python for-loop without index and item没有索引和项目的Python for循环
【发布时间】:2014-09-15 16:56:31
【问题描述】:

在 python 中是否可以有一个没有索引和项目的 for 循环? 我有类似以下内容:

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

上面的代码运行良好,但根据 pep8 编码指南并不好。 它说:“未使用的变量'i'”。

有没有办法在既没有索引也没有项目的情况下制作一个 for 循环(没有 while 循环)?还是应该忽略编码指南?

【问题讨论】:

  • 如果你不使用变量,你应该使用'_'作为约定。
  • 一般来说不是问题的答案,但在这个具体的例子中,你可以做list_1 = [3] * 5
  • 我将详细说明@tobias_k 的评论,在我看来,要记住的一个好规则是,如果你发现自己处于这种情况,那么 for 循环可能不是最好的要走的路。
  • 有人能指出它在 PEP8 中的 哪里吗?我不是不同意,只是我在任何地方都找不到它here
  • @SiHa,安装 pylint 并在您的代码上运行它。

标签: python for-loop pep8


【解决方案1】:

您可以将i 替换为_ 以使其成为“不可见”变量。

查看相关:What is the purpose of the single underscore "_" variable in Python?

【讨论】:

  • 您链接的问题的已接受答案中的评论建议使用 __(双下划线),这是完美的:它不会与 gettext 冲突并摆脱“未使用的变量”警告。跨度>
【解决方案2】:

虽然@toine 关于使用_ 是完全正确的,但您也可以通过列表理解来完善它:

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

这避免了 ITM(“初始化,而不是修改”)反模式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2020-09-09
    • 2011-04-08
    • 2018-03-16
    • 1970-01-01
    • 2013-03-20
    • 2019-05-09
    相关资源
    最近更新 更多