没有这个可以做以下i吗?
for i in range(some_number):
# do something
Run Code Online (Sandbox Code Playgroud)
如果你只是想做N次,并且不需要迭代器.
是否有可能在python中有一个没有索引和项目的for循环?我有以下内容:
list_1 = []
for i in range(5):
list_1.append(3)
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,但根据pep8编码指南并不好.它说:"未使用的变量'我'".
是否有办法在没有索引和项目的情况下进行for循环(没有while循环)?或者我应该忽略编码指南?
我正在编写的Python程序是从文件顶部读取一定数量的行,程序需要保留此标题以备将来使用.目前,我正在做类似以下的事情:
header = ''
header_len = 4
for i in range(1, header_len):
header += file_handle.readline()
Run Code Online (Sandbox Code Playgroud)
Pylint抱怨说我没有使用变量i.什么是更pythonic方式来做到这一点?
编辑:程序的目的是智能地将原始文件拆分为较小的文件,每个文件包含原始标题和数据的子集.因此,在读取文件的其余部分之前,我需要读取并保留标题.
这与下面的代码有关,它使用for循环生成一系列随机偏移量,以便在程序的其他地方使用.
此for循环的索引未使用,这导致'违规'代码被Eclipse/PyDev突出显示为警告
def RandomSample(count):
pattern = []
for i in range(count):
pattern.append( (random() - 0.5, random() - 0.5) )
return pattern
Run Code Online (Sandbox Code Playgroud)
所以我要么需要一种更好的方法来编写不需要循环索引的循环,或者告诉PyDev忽略未使用变量的这个特定实例的方法.
有没有人有什么建议?
如果我需要python中的for循环
for i in range(1,42):
print "spam"
Run Code Online (Sandbox Code Playgroud)
但不要使用"i"表示任何pylint抱怨未使用的变量.我该怎么处理?我知道你可以这样做:
for dummy_index in range(1,42):
print "spam"
Run Code Online (Sandbox Code Playgroud)
但这样做对我来说似乎很奇怪,有更好的方法吗?
我是python的新手,请原谅我,如果我错过了一些明显的东西.
这里总结了一些问题.是的,我知道其中一些答案;)我可以在其他人身上挥手,但我真的很喜欢这里的细节.
我只是看着PYCON 2011:Dropbox的是怎么做的和如何Python的帮助了(当然我完成大部分的零件跳过),但最后真正有趣的东西开始在大约22:23.
演讲者主张在C中制作你的内部循环并且"运行一次"的东西不需要太多的优化(有意义)......然后他继续陈述......释义:
将迭代器的组合传递给任何用于大规模速度改进的组合.
这是代码(希望它是相同的):
import itertools, hashlib, time
_md5 = hashlib.md5()
def run():
for i in itertools.repeat("foo", 10000000):
_md5.update(i)
a = time.time(); run(); time.time() - a
Out[118]: 9.44077205657959
_md5 = hashlib.md5()
def run():
any(itertools.imap(_md5.update, itertools.repeat("foo", 10000000)))
a = time.time(); run(); time.time() - a
Out[121]: 6.547091007232666
Run Code Online (Sandbox Code Playgroud)
嗯,看起来更高的速度改进,我可以得到一个更快的电脑!(从他的幻灯片来看.)
然后他做了一堆挥手而没有真正详细说明为什么.
我已经知道迭代器从回答pythonic方式做N次而没有索引变量?感谢Alex Martelli.
然后我想,我想知道地图是否真的增加了速度提升?我最后的想法是WTF ??? 传递到任何?真???当然,因为文档定义了不能正确任何为: …
python ×6
for-loop ×3
coding-style ×1
dummy-data ×1
eclipse ×1
loops ×1
pep8 ×1
performance ×1
pylint ×1
range ×1