我最近比较了处理速度[]和,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 True来if 1,似乎触及了类似的文字,对全局的情况; 也许值得考虑一下.
在Python中创建新空列表的最佳方法是什么?
l = []
Run Code Online (Sandbox Code Playgroud)
要么
l = list()
Run Code Online (Sandbox Code Playgroud)
我问这个是因为两个原因:
这可能是一个微不足道的问题,但我如何在python中并行化以下循环?
# setup output lists
output1 = list()
output2 = list()
output3 = list()
for j in range(0, 10):
# calc individual parameter value
parameter = j * offset
# call the calculation
out1, out2, out3 = calc_stuff(parameter = parameter)
# put results into correct output list
output1.append(out1)
output2.append(out2)
output3.append(out3)
Run Code Online (Sandbox Code Playgroud)
我知道如何在Python中启动单线程,但我不知道如何"收集"结果.
多个过程也可以 - 对于这种情况最简单的事情.我正在使用当前的Linux,但代码应该在Windows和Mac上运行.
并行化此代码的最简单方法是什么?
使用PyCharm,我注意到它提供转换dict文字:
d = {
'one': '1',
'two': '2',
}
Run Code Online (Sandbox Code Playgroud)
进入一个dict构造函数:
d = dict(one='1', two='2')
Run Code Online (Sandbox Code Playgroud)
这些不同的方法在某些重要方面有所不同吗?
(在写这个问题时,我注意到使用dict()它似乎不可能指定一个数字键.. d = {1: 'one', 2: 'two'}是可能的,但显然,dict(1='one' ...)不是.还有其他吗?)
我只是想知道list()构造函数的用法,因为如果我们要创建一个新列表,那么我们可以使用方括号,那么list()构造函数的具体用途是什么。
newGrocerylist = list(("apple", "guava", "mango", "pineapple", "orange")) #Why use the list() constructor.
print(newGrocerylist)
#We can also do like this--
newGrocerylist = ["apple", "guava", "mango", "pineapple", "orange"]
print(newGrocerylist)
Run Code Online (Sandbox Code Playgroud) python ×5
list ×2
performance ×2
coding-style ×1
dictionary ×1
literals ×1
pycharm ×1
python-3.x ×1
timeit ×1