吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1631|回复: 20
收起左侧

[求助] 循环代码优化问题,请大佬解答

[复制链接]
cccyyys 发表于 2021-6-8 11:01
[Python] 纯文本查看 复制代码
#循环优化
import time
start = time.time()
for x in range(1000):
    result = []
    for m in range(10000):
        result.append(x*1000+m*100)
end = time.time()
print('耗时{0}'.format(end-start))
    
start1 = time.time()
for x in range(1000):
    result = []
    c = x*1000
    for m in range(10000):
        result.append(c+m*100)
end1 = time.time()
print('耗时{0}'.format(end1-start1))


刚刚学完了循环,讲了一个循环代码优化,这个就是测试一下优化前与优化后的时间差距,我想问一下这个result = [] 这句为什么要放在循环里呢?这样不就是每循环一次就会生成一个空的列表了吗?但是我试了一下把result = [] 放到循环外面,发现两个循环时间基本是一致的,不是太懂,希望大佬看到后解答一下

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

fanvalen 发表于 2021-6-8 11:07
本帖最后由 fanvalen 于 2021-6-8 14:02 编辑

这个result 在for里面每次都会重新初始变量,会使得上次的值清空,最后只有一个值
在for外面不会清空,所以有很多数据

fanvalen 发表于 2021-6-8 11:13
本帖最后由 fanvalen 于 2021-6-8 14:04 编辑
fanvalen 发表于 2021-6-8 11:07
这个result 在for里面就是局部变量,在外面就是全局变量,
局部的时候你在外面print一下看看有没有哇
修改错误的解答

 楼主| cccyyys 发表于 2021-6-8 11:14
fanvalen 发表于 2021-6-8 11:07
这个result 在for里面就是局部变量,在外面就是全局变量,
局部的时候你在外面print一下看看有没有哇

啥是局部和环境变量啊,还没学[img][/img]
GiaoMan-wei 发表于 2021-6-8 11:15
对于一个小白来说,,一个print真的可以行天下
 楼主| cccyyys 发表于 2021-6-8 11:16
但是我刚刚试了下result在外面打印出来的数是很大一堆,基本满屏了。。。但是result在循环里面,好像只有一行,不过横条也很长
小能维尼 发表于 2021-6-8 12:30
看了下,你这两条代码的result = []都是放在第一个for循环里面啊。只有c赋值的位置不一样
这样下来,结果当然是一样的。
无闻无问 发表于 2021-6-8 12:35
fanvalen 发表于 2021-6-8 11:07
这个result 在for里面就是局部变量,在外面就是全局变量,
局部的时候你在外面print一下看看有没有哇

python在语句没有局部和全局之说吧,在for里for外都一样,只有函数,模块,类等才引入作用域,这和c有区别…

result要放for外…
无闻无问 发表于 2021-6-8 12:37
cccyyys 发表于 2021-6-8 11:16
但是我刚刚试了下result在外面打印出来的数是很大一堆,基本满屏了。。。但是result在循环里面,好像只有一 ...

你放for里面,差不多等于每循环一次就清空一次…
woaiwinnie2 发表于 2021-6-8 13:04
result是列表,内部是链表实现,添加元素用时是固定的,所以每次清不清空关系不大
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表