繁体   English   中英

“用于”使用未使用的变量

[英]“for in” with unused variable

我需要从y的字符中生成一个长度为x的字符串。
我直接的方法是

''.join(random.choice(y) for i in xrange(x))

问题是i被使用。
有一个更好的方法吗?

没有更好的办法了。 您可以命名变量_表示它被忽略:

''.join(random.choice(y) for _ in xrange(x))

_只是一个约定; 经验丰富的程序员在阅读您的代码后将了解,在这里它表示“未使用”,Python不在乎。

从性能的角度来看,在这里使用列表理解会更快:

''.join([random.choice(y) for _ in xrange(x)])

因为该实现需要两次扫描才能首先确定输出长度; 这种双重扫描意味着无论如何将任何生成器表达式都转换为列表。 在这里使用列表推导可以简化这种转换,并且速度更快。

我会使用与随机包random.sample不同的功能。 一个例子:

import string
from random import sample
y = string.ascii_letters
x = 10
xstr = "".join(sample(y, x))

无需循环...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM