`
arganzheng
  • 浏览: 104371 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

用range进行python循环需要注意的问题

阅读更多

用range进行python循环需要注意的问题

2011-03-22 星期二 晴朗

今天将数据迁移脚步初步写好,输入是要迁移的记录id范围,比如[minId, maxId]。主函数体大概如下:
#  migrate the table range from [minId, maxId], with data patch
def migrate(tableName, minId, maxId):
    for id in range(minId, maxId):
        migrate_one(id)

    # now [minId, maxId] have been migrate, we should deal with the retry queue
    print "now begin to process the retry queue!"
    while retry_queue:
        id = retry_queue.pop()
        migrate_one(id)

一开始测试用小范围数据进行测试,没有问题。想测试一下性能,将范围设置为2亿,结果发现内存立刻飙升到100%,过了一会shell打印了一个killed process出来。纳闷了,因为我是很小心的使用内存的,包括数据库连接,自己搞了个连接池控制,一条记录一条记录的读取的,cursor也有注意关闭。没理由内存溢出啊。将代码认真检查了一下,发现了这一行代码有最大的嫌疑:
for id in range(minId, maxId):
查看了一下API,发现是range(..)是生成一个List对象,当这个范围很大的时候,比如我们上面的例子2亿,4G的内存必然溢出。

写的时候都是边查文档边写的,一知半解是很可怕的,在使用一个API或者语法的时候,还是要先仔细学习一下的。

分享到:
评论

相关推荐

    第五章Python循环习题及答案--中文

    ### Python 循环知识点解析 #### 5.2 节 while 循环 ##### 题目 5.1 **题目描述:** ```python count = 0 while count print("Welcome to Python") count += 1 ``` **问题:** 以上代码会打印“Welcome to ...

    Python语言基础:for循环嵌套.pptx

    当需要在某个循环内部再执行另一层循环时,就会用到循环的嵌套。在Python中,for循环的嵌套是完全允许的,可以将一个for循环放在另一个for循环内部,形成多层循环结构,以此实现更复杂的逻辑。 嵌套for循环的基本...

    Python语言基础:for循环语句.pptx

    在处理这些问题时,要注意合理使用`range()`函数以及if条件语句,以满足题目要求。 总的来说,Python的for循环语句是编程中不可或缺的一部分,它使得我们能够有效地处理序列数据和迭代操作,从而实现各种复杂的逻辑...

    初中Python程序设计循环结构教学设计方案.pdf

    文件中出现了`for i in range(1,101):`的代码片段,这展示了Python中最常见的for循环使用方法。`range(1,101)`是一个产生从1到100的整数序列的函数。在这个例子中,`for`循环会依次取出这个序列中的每一个数字赋给...

    python实现画循环圆

    在今天的分享中,我们将探讨如何使用Python来绘制循环圆。循环圆是指一系列同心圆,每个圆的半径按一定的规律递增或递减。在我们的例子中,我们将使用Python的turtle库来绘制一系列递减半径的圆形。首先,我们需要...

    python的for循环语句range-Python基础教程:for循环语句与range()函数.pdf

    在Python中,`for`循环通常与`range()`函数一起使用,特别是在处理数字序列时。`range()`函数生成一个数字序列,可以根据需要指定起始值(默认为0)、结束值(不包含在内)和步长(默认为1)。其基本语法如下: ```...

    Python for循环与range函数的使用详解

    For … in 语句是另一种循环语句,其特点是会在一系列对象上进行迭代(Iterates),即它会遍历序列中的每一个项目 注意: 1、else 部分是可选的。当循环中包含它时,它循环中包含它时,它总会在 for 循环结束后开始...

    Python 习题库_循环语句_

    通过实践这些题目,你可以深入理解如何运用Python的循环语句解决实际问题,如何有效地控制循环流程,以及何时使用不同的循环结构。每个题目都会涉及上述知识点的一个或多个方面,逐步提升你的编程技能。记得分析源...

    python基础03_python循环

    "python基础03_python循环" Python基础知识点第三课:Python循环 Python中的循环可以分为两种:while循环和for循环。它们的相同点是都可以循环执行一件事情,但是它们的不同点在于for循环会在可迭代的序列被穷尽...

    python 利用for循环 保存多个图像或者文件的实例

    在实际应用中,会遇到保存多个文件或者图像的操作,利用for循环可以实现基本要求: for i in range(50): plt.savefig(%d.jpg%(i+1)) ... 您可能感兴趣的文章:python使用循环实现批量创建文件夹示例Python fo

    python 循环批量生成变量(csdn)————程序.pdf

    在Python编程中,有时我们需要在循环中批量生成变量,例如创建一系列按某种规律变化的变量。在提供的内容中,展示了两种方法来实现这个目标:使用`locals()`函数和使用`exec()`函数。这两种方法虽然都能达到目的,但...

    Pythonrange函数的一个JavaScript实现

    现在,我们可以像使用 Python 的 `range()` 一样使用这个 JavaScript 函数。例如: ```javascript console.log(range(1, 6)); // 输出: [1, 2, 3, 4, 5] console.log(range(1, 6, 2)); // 输出: [1, 3, 5] ``` 这...

    python3 循环读取excel文件并写入json操作

    在Python编程中,有时我们需要处理大量数据,例如从Excel文件中读取数据并将其转换成其他格式,如JSON。在给定的示例中,它演示了如何使用Python3读取多个Excel文件并将数据写入一个JSON文件。下面将详细解释这个...

    Python for 循环语句.doc

    在 Python 中,for 循环可以与 else 语句结合使用。例如: for num in range(10,20): for i in range(2,num): if num%i == 0: j=num/i print('%d 等于 %d * %d' % (num,i,j)) break else: print('%d是一个...

    Python中的range函数

    Python中的`range()`函数是编程语言中的一个基础且重要的工具,尤其在循环控制和序列生成方面发挥着关键作用。这篇文章将深入探讨`range()`的用法、参数、返回值以及在实际编程中的应用。 `range()`函数的基本语法...

    Python应用开发-循环注意事项.pptx

    在使用循环时,有几个重要的注意事项需要关注。 首先,我们来看循环变量。在Python的for循环中,循环变量通常用于追踪循环的迭代次数。例如,在`for i in range(5):`这样的循环中,`i`就是循环变量。它会自动按照...

    Python基础知识之Python中循环结构for循环与while循环.docx

    ### Python基础知识之...以上内容展示了如何使用Python中的两种循环结构——`for`循环和`while`循环,并结合了`range()`函数的使用方法。这两种循环结构在实际编程中应用广泛,掌握它们对于学习和使用Python至关重要。

    Python实验5循环结构(2).pdf

    整体而言,文档"Python实验5循环结构(2).pdf"为读者提供了Python循环结构的基础知识,并通过一系列示例代码加强了理解。这些示例涵盖了一些常见的编程问题,如输入验证、特定数学数的查找以及数据处理等。通过掌握...

    Python 循环语句.doc

    在本资源中,我们将详细介绍 Python 的循环语句,包括 while 循环和 for 循环,以及循环控制语句的使用。 循环语句是编程语言中的一种基本结构,它允许开发者执行一个语句或语句组多次。Python 提供了两种类型的...

    python循环指令.docx

    Python 循环指令是编程语言的核心概念,它们用于在满足特定条件时重复执行代码块,这对于处理数据迭代、遍历序列或实现复杂逻辑至关重要。在Python中,主要包含两种循环结构:for循环和while循环。 1. **for循环**...

Global site tag (gtag.js) - Google Analytics