相关疑难解决方法(0)

是否可以在没有迭代器变量的情况下为范围循环实现Python?

没有这个可以做以下i吗?

for i in range(some_number):
    # do something
Run Code Online (Sandbox Code Playgroud)

如果你只是想做N次,并且不需要迭代器.

python loops for-loop range

176
推荐指数
6
解决办法
9万
查看次数

没有索引和项目的Python for循环

是否有可能在python中有一个没有索引和项目的for循环?我有以下内容:

list_1 = []
for i in range(5):
    list_1.append(3)
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但根据pep8编码指南并不好.它说:"未使用的变量'我'".

是否有办法在没有索引和项目的情况下进行for循环(没有while循环)?或者我应该忽略编码指南?

python for-loop pep8

17
推荐指数
2
解决办法
7446
查看次数

Pythonic忽略循环控制变量的方法

我正在编写的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方式来做到这一点?

编辑:程序的目的是智能地将原始文件拆分为较小的文件,每个文件包含原始标题和数据的子集.因此,在读取文件的其余部分之前,我需要读取并保留标题.

python

14
推荐指数
3
解决办法
7562
查看次数

Pythonic编写一个不使用循环索引的for循环的方法

这与下面的代码有关,它使用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 eclipse for-loop

8
推荐指数
3
解决办法
3422
查看次数

当你不需要在python中使用索引时,如何制作For循环?

如果我需要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的新手,请原谅我,如果我错过了一些明显的东西.

python coding-style pylint dummy-data

7
推荐指数
3
解决办法
2452
查看次数

将迭代器传递给任何执行速度和为什么?

这里总结了一些问题.是的,我知道其中一些答案;)我可以在其他人身上挥手,但我真的很喜欢这里的细节.

  1. 这甚至是个好主意吗?(这个不在下面)
  2. 我想知道地图是否真的能提高速度?为什么?
  3. 为什么世界上会将迭代器传递给任何使代码更快的代码呢?
  4. 为什么我的Counter对象工作,我的print_true函数失败了?
  5. 是否有一个等效于itertools.imap的东西,它会一遍又一遍地调用一个函数,并且可选择一定次数?
  6. 我的胡萝卜在哪里?!?

我只是看着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 performance

5
推荐指数
0
解决办法
2038
查看次数