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