Python for循环和数组

2024-05-13 00:40:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python还不熟悉。我正在学习从Excel文件中提取数据。我遇到了以下陈述:

sheet_data = [[sheet.cell_value(r, col) for col in range(sheet.ncols)] for r in range(sheet.nrows)]

我了解常规for循环,但不了解以下版本:

x for y in range()

当变量x位于之前,表示范围()中y的,这意味着什么?你知道吗


Tags: 文件数据in版本fordatavaluecell
3条回答

for语句用于在列表上循环。这被称为迭代器。当它包含在[…]中时,这被称为列表理解。你知道吗

列表理解允许您将一个列表转换为另一个列表。这有时称为映射,即从X->;Y映射,函数将X的值转换为Y的返回值

例如,在

[y + 2 for y in range(...)]

迭代range()生成的列表中的所有值。每个列表元素在y的每个值上加2,因此最终的结果是一个列表,其中每个元素比源列表中相应的元素大2。因此,范围(3)将产生[0,1,2],然后转换为[2,3,4]。你知道吗

所以[范围内的y对y(…)]实际上不会有太大的效果。你知道吗

我看到在您提供的示例中有两个迭代器,这使事情有点复杂。但从本质上讲,它们提供了两个参考变量:rcol,从中使用这两个变量得出最终结果。你知道吗

列表理解是Python中非常强大的工具。绝对值得知道。你知道吗

这些在python中称为列表理解。如果您有一个函数do_something,那么以下两个块是等效的:

result = [do_something(y) for y in range(10)]

。。。你知道吗

result = []
for y in range(10):
    result.append(do_something(y))

其中range(10)可以是任何iterable。你知道吗

把它们看作是创建列表的快速方法。从python2.7开始,它们也适用于字典。This tutorial可能有用。你知道吗

“x”是保存序列对象值的任意变量名。在列表理解或生成器表达式中使用它将返回正在遍历的iterable对象中的项。你知道吗

相关问题 更多 >