鱼C论坛

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

元组问题

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

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

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

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

这是我的解题思路
  1. import timeit

  2. l = []
  3. t = ()
  4. sum1= 0
  5. aver1 =0
  6. sum2= 0
  7. aver2 =0

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



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

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

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

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

  21. if aver1 > aver2:
  22.     print("元组所需时间短")
  23. else:
  24.     print("列表所需时间短")
复制代码


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

使用道具 举报

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

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

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

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

  21. if time_1 > time_2:
  22.     print("元组所需时间短")
  23. else:
  24.     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, 2024-4-29 00:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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