【发布时间】:2017-08-16 08:48:37
【问题描述】:
我编写了这段代码,它按顺序打印行:
with open(filename, 'r') as csvfile:
rder = csv.reader(csvfile, delimiter=',')
for row in rder:
print(row)
是否可以使用hasNext 和next 方式访问rder,即没有for 构造?例如,如何跳过第一行?
问题很笼统,我想明白,能留在in之前是什么意思。在 Java 中,这意味着是 Iterable 接口,我可以很容易地找到它的文档并知道我可以用它做什么。
在 Python 中,我找不到关于 reader 函数返回什么的信息,除了 what is written in example 之外,我不知道我能用它做什么。并且该示例仅用于for。
我可以选择其他吗?
【问题讨论】:
-
我怎么知道
reader()返回迭代器?for中的用法暗示了这一点? -
是的,
for ... in X暗示X是某种迭代器。 Python 有相当丰富的东西可以迭代。 -
X在for whatever in X中可用意味着X是一个可迭代。这可能是一个迭代器(在 Java 中不算作可迭代),也可能是某种可重用的可迭代对象,例如列表或 Python 3 范围对象。 -
rder本质上不是迭代器;它只是一个迭代器,因为 Python 可以使用文本文件(以及许多其他返回字符串的对象)作为迭代器。