【问题标题】: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循环代码是否正确?
【问题讨论】:
标签:
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 而不是列表构建一个集合。该集合用于消除重复条目。