luck78 发表于 2021-9-24 22:51:22

元组问题

问题:重复测试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 intest2:
    sum2 = sum2+y #所有时间相加总和
    aver2= sum2/100#求重复100次元组运行时间的平均数

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


但是 到了 test1 = timeit.repeat(l,repeat=100) 这一步就开始报错,看不懂提示的意思
请问大神们怎么改才能让程序运行下去

深谙流年 发表于 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("列表所需时间短")

深谙流年 发表于 2021-9-25 00:54:00

你试试这个
把repeat的值改成100,然后跑。。如果出错的话就是时间小于1,不能除o

深谙流年 发表于 2021-9-25 00:55:32

深谙流年 发表于 2021-9-25 00:53


小白所写,百度所查,不喜勿点欢迎一起探讨   如果是来显示你有多牛逼的话,,拜拜了你

深谙流年 发表于 2021-9-25 00:58:17

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

函数里面记得也改,,,我是三个数,方便跑的快,,,你可以range100,看你电脑会不会卡死   哈哈哈,别太多了,太多了会卡

luck78 发表于 2021-9-25 10:07:39

深谙流年 发表于 2021-9-25 00:53


谢谢,我现在还没学到函数表达,只会while,for, if 这类简单的表达式,能否指出我错在哪里?

深谙流年 发表于 2021-9-25 11:03:10

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

好像是模块问题,返回值不能被迭代的样子,
页: [1]
查看完整版本: 元组问题