【问题标题】:is it right comprehension convert to normal python code?正确的理解转换为普通的python代码吗?
【发布时间】:2020-11-19 07:20:36
【问题描述】:

下面的代码是使用 for 循环的理解

n_outputs = len(set([row[-1] for row in train]))

并且我转换为正常的 python 代码以了解作者为什么制作此代码。

for row in train:
    n_outputs = len(set[row - 1])

正常转换为for循环代码是否正确?

【问题讨论】:

  • 什么是火车?是列表吗?
  • 这两个版本应该给出不同的结果...
  • 另一个(在)理解上的巨大胜利:-o

标签: python list-comprehension


【解决方案1】:

假设您的 train 变量是一个字符串列表,

n_outputs = len(set([row[-1] for row in train]))

将在您的 train 列表中找到不同的最后一个字符的数量

要将其转换为循环,

n_outputs = set()
for row in train:
    n_outputs.add(row[-1])
n_outputs = len(n_outputs)

会产生相同的结果

【讨论】:

    【解决方案2】:

    理解是这个语句的最里面的部分——你需要先把它转换成一个 for 循环,字面意思是这样转换的(未经测试):

    rowends = []
    for row in trains:
        rowends.append(row[-1])
    n_outputs = len(set(rowends))
    

    一旦这样写,您可能会选择适应为 rowends 而不是列表构建一个集合。该集合用于消除重复条目。

    【讨论】:

      猜你喜欢
      • 2021-08-16
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      • 2016-11-03
      相关资源
      最近更新 更多