私はPythonで簡単なスクリプトを書いています。これはtest
クラスの10000インスタンスのリストを作成します。次に、リスト内のすべての要素をループし、変数x
の値をid_generator
メソッドを使用して生成されたランダムな文字列に変更しています。Pythonのリストから価値を得る
import string
import random
def id_generator(size=6, chars=string.ascii_uppercase + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
class test:
x = None
y = None
d = test
lista = [d] * 10000
w = 0
while (w < 10000):
lista[w].x = id_generator()
w = w + 1
print(lista[3].x)
print(lista[40].x)
print(lista[1999].x)
出力に同じ値が3つあるのはなぜですか? id_generator()
あなたがテスト_class_ 10000 _references_のリストを持っているので。このようなリストを作成するには、 'lista = [xrange(10000)の_のためのtest()]'です。ループも醜いですが、代わりにforと置き換えてください。 – myaut
'lista [1]はlista [1493]'は 'True'を返します。それはあなたのリストに10000回ある単一のオブジェクトだけを作成するためです。 – syntonym
私はあなたが「このコードが何をテストしたのか」を理解しておかなければならないので、私は下降しました。 lista = [d] * 10000'となっています。 – nbro