我正在做一些关于列表操作速度的实验。为此,我定义了两个列表:l_short=[]和l_long=list(range(10**7))。想法是将bool(l)与len(l)!=0进行比较在if竞赛中,以下实现比iflen(l)!=0:passifl:pass快很多但是没有if比赛我得到了以下结果:%%timeitlen(l_long)!=0#59.8ns±0.358nsperloop(mean±std.dev.of7runs,10000000loopseach)%%timeitbool(l_long)#63.3ns±0.192nsperloop(mean±std.dev.of7runs,
我不知道为什么会这样。我正在处理一些列表,我需要一个从0到log(n,2)的for循环,其中n是列表的长度。但是代码出奇的慢,所以经过一番研究我发现问题出在范围生成上。演示示例代码:n=len([1,2,3,4,5,6,7,8])k=8timeit('range(log(n,2))',number=2,repeat=3)#Test1timeit('range(log(k,2))',number=2,repeat=3)#Test2输出2loops,bestof3:2.2sperloop2loops,bestof3:3.46µsperloop测试次数很少(我不希望它运行超过10分钟),但它
我正在处理这样一种情况,我需要让一个字符串适合屏幕上分配的间隙,因为我使用的是unicodelen()和slices[]显然是按字节工作的,我最终把unicode字符串剪得太短了,因为€只在屏幕中占据一个空间,但len()或slices[]占2个空间。我已经正确设置了编码header,并且我愿意使用slice或len()之外的其他东西来处理这个问题,但我真的需要知道字符串将占用多少个空格以及如何将其切割成可用的。$cattest.py#-*-coding:utf-8-*-a="2€uros"b="2Euros"printlen(b)printlen(a)printa[3:]printb
关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭8年前。Improvethisquestion错误原因是什么TypeError:objectoftype'bool'hasnolen()我应该在我的python程序中导入一些东西吗?我在if条件下使用len(sys.argv)来检查命令行参数的数量,这些参数是浮点值(如1.2和2.4等)。有什么想法吗?这是在python2.6。这就是我运行程序
比较shape和len时是否存在差异(例如性能)?考虑以下示例:In[1]:importnumpyasnpIn[2]:a=np.array([1,2,3,4])In[3]:a.shapeOut[3]:(4,)In[4]:len(a)Out[4]:4快速运行时比较表明没有区别:In[17]:a=np.random.randint(0,10000,size=1000000)In[18]:%timea.shapeCPUtimes:user6µs,sys:2µs,total:8µsWalltime:13.1µsOut[18]:(1000000,)In[19]:%timelen(a)CPUtim
我见过使用qsize()和len()计算队列大小的实例。两者有什么区别? 最佳答案 对于大多数容器,您需要len,但Queue.Queue实际上不支持len。这可能是因为它很旧,或者因为在多线程环境中获取队列的长度不是特别有用。在任何情况下,如果您想要Queue的(近似)大小,您需要qsize。 关于python队列获取大小,使用qsize()还是len()?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.
内置函数len()(https://docs.python.org/3/library/functions.html#len)返回“一个对象的长度(项目数)”,但这并没有实现对于queue.Queue(https://docs.python.org/3/library/queue.html)。相反,queue.Queue有一个qsize()方法,当队列明显有长度时,它返回队列的近似大小;您可以在构造函数中指定Queue的最大长度。类似的collections.deque确实适用于len。queue.Queue没有使用通用的len()的原因是什么?或者:如果将qsize改为命名为__le
len(list)是在每次调用时计算列表的长度,还是返回内置计数器的值?我有一个上下文每次循环都需要检查列表的长度,例如:listData=[]forvalueinioread():iflen(listData)>=25:processlistdata()clearlistdata()listData.append(value)我应该在每次迭代时检查len(listData),还是应该为列表的长度设置一个计数器? 最佳答案 您可能应该知道,如果您担心此操作的性能,Python中的“列表”arereally动态数组。也就是说,它们不是
None在Python中是一个对象。>>>isinstance(None,object)True因此它可以使用像__str__()这样的函数>>>str(None)'None'但为什么它不对__len__()做同样的事情呢?>>>len(None)Traceback(mostrecentcalllast):File"",line1,inlen(None)TypeError:objectoftype'NoneType'hasnolen()这似乎是Pythonic,即使变量是None而不仅仅是一个空列表,iflist也是可以接受的。是否存在使用len(None)问题更大的情况?
我在ipython中运行以下代码session:#Thiscallisslow,butthatisexpected.(Itloads3GBofdata.)In[3]:arc,arc_sub,upls,go=foo_mod.ready_set()#Thiscallisalsoslow,as`upls`ishuge.In[4]:upls=list(upls)#Thiscallisslowinmeatspace,but`%timeit`doesn'tnotice!In[5]:%timeit-n1-r1len(upls)1loops,bestof1:954nsperloop%timeit正直躺