-1
A
回答
2
下面是使用timeit.timeit
比较两种方法的速度一时间测试:
>>> from timeit import timeit
>>> list1 = ['a','b','c']
>>> list2 = ['x','y','z']
>>> timeit("list1 == list2", "from __main__ import list1, list2")
0.31944255484984296
>>> str1 = "abc"
>>> str2 = "xyz"
>>> timeit("str1 == str2", "from __main__ import str1, str2")
0.2439259738318924
>>>
正如你所看到的,比较两个字符串的比较比两个列表有所加快。为什么,请参阅@ user2864740的comment。 :)
1
看来,串优势随着序列变得更大:
from timeit import timeit
for p in range(4):
N = 10 ** p
list1 = list(range(10)) * N
list2 = list(list1)
list2[-1] = 0
str1 = ''.join(map(str, list1))
str2 = ''.join(map(str, list2))
# Sequences are equal except for their last element.
# And everything is the same length.
assert list1[:-1] == list2[:-1]
assert str1[:-1] == str2[:-1]
assert list1 != list2
assert str1 != str2
assert len(list1) == len(list2)
assert len(str1) == len(str2)
assert len(list1) == len(str1)
a = timeit("list1 == list2", "from __main__ import list1, list2")
b = timeit("str1 == str2", "from __main__ import str1, str2")
print 'Length:', N * 10
print ' list: ', a
print ' str: ', b
print ' ratio: ', a/b
的一些结果:
Length: 10
list: 0.0885802666801
str: 0.0493016279308
ratio: 1.79670064454
Length: 100
list: 0.33228903865
str: 0.0540730467332
ratio: 6.14518801372
Length: 1000
list: 2.78192754261
str: 0.122594386356
ratio: 22.6921282882
Length: 10000
list: 26.8981546711
str: 0.78435279802
ratio: 34.2934387931
+0
非常令人印象深刻:)谢谢!书签代码,如果我需要测试更多的东西。 –
相关问题
- 1. 蟒蛇:比较两个字符串
- 2. 当你比较蟒蛇两个字符串会发生什么
- 3. 蟒蛇列表比较字符串项与\ r \ n
- 4. 比较两个字符串的最有效方法是什么?
- 5. 什么是进行字符串比较最有效的方法?
- 6. 比较列表项的整数蟒蛇
- 7. 比较蟒蛇
- 8. 比较列出蟒蛇
- 9. 蟒蛇比较字典
- 10. 列表字符串比较
- 11. 比较两个列表,并与蟒蛇
- 12. 蟒蛇 - 比较两个列表
- 13. 字符串比较有什么作用?
- 14. 什么时候字符串比较比较引用或值?
- 15. 蟒蛇高效的字符串搜索
- 16. 查找字符串中的字符串列表中的蟒蛇
- 17. 无效的语法字符串比较蟒蛇维基解析器
- 18. 比较与蟒蛇
- 19. C#中的字符串性能 - 什么是更快地比较,字符串文字或字符串长度
- 20. 具有字典或列表蟒蛇
- 21. 蟒蛇:字符串
- 22. 比较列表字符串字符串列表
- 23. 与字符串比较蟒蛇意外行为
- 24. 如何蟒蛇比较字符串和整数
- 25. 比较和提取清单字符串蟒蛇
- 26. 比较命令行参数或statment到不同的字符串蟒蛇
- 27. 什么是比较字符串的更好方法?
- 28. 字符串比较等效
- 29. 是什么蟒蛇
- 30. 什么是比较这两个列表最有效的方法?
你为什么会关注这个......任何区别可能是微不足道的......字符串比较可能会更快一点......但是严重的是为什么它很重要? (我的意思是,你运行成正影响你的程序的执行速度变慢?) –
字符串 - 因为这是一个“原始”操作(即,虽然两者都可以作为序列比较,从内部函数的字符串好处查看)。但是使用最合适的结构。 – user2864740
仅仅是好奇心。 –