鱼C论坛

 找回密码
 立即注册
查看: 1053|回复: 6

元组问题

[复制链接]
发表于 2021-9-24 22:51:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题:重复测试100次,求创建列表的速度快,还是创建元组的速度快, 并分别计算出平均速度

这是我的解题思路
import timeit

l = []
t = ()
sum1= 0
aver1 =0
sum2= 0
aver2 =0

while True:
    temp = input("请选择您想创建的内容:")
    l.append(temp)#将输入内容转成列表形式
    t=(temp)#将输入内容转成元组形式
    break



test1 = timeit.repeat(l,repeat=100)# 计算列表形式重复100次的分别时间

for i in test1:
    sum1 = sum1+i#所有时间相加总和
    aver= sum1/100#求重复100次列表运行时间的平均数

test2 = timeit.repeat(t,repeat=100)# 计算元组形式重复100次的分别时间

for y in  test2:
    sum2 = sum2+y #所有时间相加总和
    aver2= sum2/100#求重复100次元组运行时间的平均数

if aver1 > aver2:
    print("元组所需时间短")
else:
    print("列表所需时间短")

但是 到了 test1 = timeit.repeat(l,repeat=100) 这一步就开始报错,看不懂提示的意思
请问大神们怎么改才能让程序运行下去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-25 00:53:09 | 显示全部楼层
import timeit
from timeit import repeat

l = []
def list_1():
    for i in range(3):
        l.append(i)
    return l
test1 = repeat(list_1,repeat=6)# 计算列表形式重复100次的分别时间
print(test1)
time_1 = sum(test1)
avarage_1 = time_1/(len(test1))

tuple_2 = []
def tuple_1():
    for i in range(3):
        tuple_2.append(i)

tuple_3 = tuple(tuple_2)
test2 = repeat(tuple_1,repeat=6)# 计算元组形式重复100次的分别时间
print(test2)
time_2 = sum(test2)
avarage_2 = time_2/(len(tuple_3))

if time_1 > time_2:
    print("元组所需时间短")
else:
    print("列表所需时间短")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-25 00:54:00 | 显示全部楼层
你试试这个
把repeat的值改成100,然后跑。。如果出错的话就是时间小于1,不能除o
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-25 00:55:32 | 显示全部楼层

小白所写,百度所查,不喜勿点  欢迎一起探讨   如果是来显示你有多牛逼的话,,拜拜了你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-25 00:58:17 | 显示全部楼层
深谙流年 发表于 2021-9-25 00:54
你试试这个
把repeat的值改成100,然后跑。。如果出错的话就是时间小于1,不能除o

函数里面记得也改,,,我是三个数,方便跑的快,,,你可以range100,看你电脑会不会卡死   哈哈哈,别太多了,太多了会卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-25 10:07:39 | 显示全部楼层

谢谢,我现在还没学到函数表达,只会while,for, if 这类简单的表达式,能否指出我错在哪里?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-25 11:03:10 | 显示全部楼层
luck78 发表于 2021-9-25 10:07
谢谢,我现在还没学到函数表达,只会while,for, if 这类简单的表达式,能否指出我错在哪里?

好像是模块问题,返回值不能被迭代的样子,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 07:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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