相关疑难解决方法(0)

为什么[]比list()更快?

我最近比较了处理速度[]和,list()并且惊讶地发现它的[]运行速度比它三倍list().我跑了相同的测试与{}dict(),结果几乎相同:[]{}两个花了大约0.128sec /百万次,而list()dict()大约花费每个0.428sec /万次.

为什么是这样?不要[]{}(可能()'',太)立即传回文字的一些空股票的份,而其明确命名同行(list(),dict(),tuple(),str())完全去创建一个对象,他们是否真的有元素?

我不知道这两种方法有何不同,但我很想知道.我无法在文档中或在SO上找到答案,搜索空括号结果比我预期的问题更多.

我拨打了我的时序结果timeit.timeit("[]")timeit.timeit("list()"),和timeit.timeit("{}")timeit.timeit("dict()"),分别比较列表和字典.我正在运行Python 2.7.9.

我最近发现的" 为什么是,如果真慢于如果为1? "来比较的性能if Trueif 1,似乎触及了类似的文字,对全局的情况; 也许值得考虑一下.

python performance list instantiation literals

679
推荐指数
5
解决办法
7万
查看次数

在python中创建一个具有特定大小的空列表

我想创建一个可以容纳10个元素的空列表(或者是最好的方法).

之后我想在该列表中分配值,例如,这应该显示0到9:

s1 = list();
for i in range(0,9):
   s1[i] = i

print  s1
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,它会生成错误,或者在另一种情况下,它只显示[](空).

有人可以解释原因吗?

python list

465
推荐指数
11
解决办法
115万
查看次数

如何在python中声明零数组(或一定大小的数组)

我正在尝试建立一个计数直方图...所以我创建了桶.我知道我可以通过并附加一堆零,即沿着这些方向的东西:

buckets = []
for i in xrange(0,100):
    buckets.append(0)
Run Code Online (Sandbox Code Playgroud)

有更优雅的方式吗?我觉得应该有一种方法来声明一个特定大小的数组.

我知道numpy有,numpy.zeros但我想要更通用的解决方案

python

172
推荐指数
6
解决办法
38万
查看次数

Python3列表中填充了空字典

我找到了一种使列表填充相同文字的方法。

所以我做了以下事情:

my_list_of_dict = [{}] * 3

my_list_of_dict[0][0] = 1
my_list_of_dict[0][1] = 2

print(my_list_of_dict)
# What I thought : [{0: 1, 1: 2}, {}, {}]
# What actually happened : [{0: 1, 1: 2}, {0: 1, 1: 2}, {0: 1, 1: 2}]
Run Code Online (Sandbox Code Playgroud)

这是错误吗?或预期功能?

似乎python并不是每次都初始化新的dict,而是只是将给定的dict分配给列表。

另外,我该怎么办call(pronouce) [] * n?这是一种列表理解吗?

python python-3.x

2
推荐指数
1
解决办法
35
查看次数

标签 统计

python ×4

list ×2

instantiation ×1

literals ×1

performance ×1

python-3.x ×1