相关疑难解决方法(0)

为什么我不能在同一数据上迭代两次?

老实说,我在这里有点困惑,为什么我不能在相同的数据上迭代两次?

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对象(如果是这样的原因)......

python

34
推荐指数
4
解决办法
2万
查看次数

Python:在地图对象上调用'list'两次

我想计算直到n的平方和.假设n是4.然后此代码生成一个列表,其中包含0到4范围内的地图对象:

m = map(lambda x: x**2, range(0,4))
Run Code Online (Sandbox Code Playgroud)

足够轻松.现在调用m上的列表,然后求和:

>>> sum(list(m))
14
Run Code Online (Sandbox Code Playgroud)

意外的行为是,如果我再次运行最后一行,则总和为0:

>>> sum(list(m))
0
Run Code Online (Sandbox Code Playgroud)

我怀疑这是因为调用list(m)返回一个空列表,但我找不到这种行为的解释.有人可以帮我解决这个问题吗?

python lambda python-3.x

10
推荐指数
1
解决办法
1543
查看次数

标签 统计

python ×2

lambda ×1

python-3.x ×1