迭代器和生成器之间有什么区别?关于何时使用每种情况的一些示例会很有帮助.
老实说,我在这里有点困惑,为什么我不能在相同的数据上迭代两次?
def _view(self,dbName):
db = self.dictDatabases[dbName]
data = db[3]
for row in data:
print("doing this one time")
for row in data:
print("doing this two times")
Run Code Online (Sandbox Code Playgroud)
这将打印出"一次这样做"几次(因为数据有几行),但它根本不会打印出"这样做两次"......
我第一次迭代数据工作正常,但第二次当我运行最后一个列表"for data in data"时,这没有返回...所以执行它一次工作但不是两次......?
仅供参考 - 数据是一个csv.reader对象(如果是这样的原因)......
我正在学习如何使用该filter功能.
这是我写的代码:
people = [{'name': 'Mary', 'height': 160},
{'name': 'Isla', 'height': 80},
{'name': 'Sam'}]
people2 = filter(lambda x: "height" in x, people)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我要做的是删除所有不包含'height'密钥的字典.
代码工作正常,事实上如果我这样做:
print(list(people2))
Run Code Online (Sandbox Code Playgroud)
我明白了:
[{'name': 'Mary', 'height': 160}, {'name': 'Isla', 'height': 80}]
Run Code Online (Sandbox Code Playgroud)
问题是,如果我这样做两次:
print(list(people2))
print(list(people2))
Run Code Online (Sandbox Code Playgroud)
第二次,我得到一个空列表.
你能解释一下为什么吗?