如何在python中创建一个字典,其中包含随机字母作为键,没有重复项?

时间:2017-04-25 11:44:08

标签: python dictionary random key

这是我的代码:

我创建了一些随机字母并将它们存储在变量中,然后我将这些变量用作字典中的键。问题是由于随机字母,密钥是重复的。我该如何解决这个问题?

a = random.choice(string.ascii_letters).lower()
b = random.choice(string.ascii_letters).lower()
            .
            .
            .
z = random.choice(string.ascii_letters).lower()

alphabet = 
{'a':a,'b':b,'c':c,'d':d,'e':e,'f':f,'g':g,'h':h,
'i':i,'j':j,'k':k,'l':l,'m':m,'n':n,
'o':o,'p':p,'q':q,'r':r,'s':s,'t':t,
'u':u,'v':v,'w':w,'x':x,'y':y,'z':z} 

1 个答案:

答案 0 :(得分:5)

请勿使用单独的choice()来电。使用random.sample(),从string.ascii_lowercase而非小写选择:

# pick 10 random keys, all unique
keys = random.sample(string.ascii_lowercase, 10)

如果你所做的只是改变所有26个字母,那么使用random.shuffle()

# list of 26 letters in random order
random_letters = list(string.ascii_lowercase)
random.shuffle(random_letters)
# map the alphabet to the random letters
alphabet = dict(zip(string.ascii_lowercase, random_letters))