[英]“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.