【问题标题】:Randomly Generate Letters in python在python中随机生成字母
【发布时间】:2021-09-23 13:46:55
【问题描述】:

我想生成 10 个唯一的英文字母并将它们附加到 Python 中的列表中。

这是我尝试过的:

for i in range(10):
    rand = random.choice(string.ascii_letters)
    print(rand)

【问题讨论】:

  • alist = [] 然后将 print 替换为 alist.append(rand)
  • 请说明您遇到了什么错误,如果有的话?

标签: python random append letter generate


【解决方案1】:
import numpy as np
n = 10

letterlist = [chr(i) for i in np.random.randint(ord('a'), ord('z') + 1, n)]
print (letterlist)

【讨论】:

  • 不用担心。如果您觉得这很有用,请投票或做出正确的决定:)
【解决方案2】:

您需要同时导入随机库和字符串库。 并使用“列表”类型的变量

import random
import string 

ls=[]

for i in range(10):
    rand = random.choice(string.ascii_letters)
    ls.append(rand)
    
print(ls)

这就是代码的样子..

【讨论】:

    【解决方案3】:

    有很多好的方法可以做到这一点,我相信人们对你的问题投了反对票,因为没有解释你的方法失败的原因。我也看到了很多导入和库,但这是一个非常简单的问题,可以以非常普通的方式回答,只需随机导入。

    import random
    
    ##define the list to keep valid letters in
    letters = []
    ##add all letters between A and Z, capital, +1 because range isn't end inclusive
    for i in range(ord('A'),ord('Z')+1):
        letters.append(chr(i))
    ##same but for lowercase letters
    for i in range(ord('a'),ord('z')+1):
        letters.append(chr(i))
    
    ##returns a random string of n characters
    def n_string(n):
        result = ""
        for i in range(0,n):
            ##picks a random spot in the letters list, randrange IS end inclusive
            spot = random.randrange(0,len(letters)-1)
            result += letters[spot]
        return result
    
    print(n_string(10))
    

    这只是一种方法,看看你是否可以想出任何方法来优化它或做不同的事情。

    (只是一个提示,尝试跳过字母生成,只在 ASCII A(65)和 ASCII A + 52(所有小写和大写字母的计数)之间创建一个数字。如果该数字大于 90 (Z) ,添加一些内容使其变为小写字母。)

    【讨论】:

      【解决方案4】:

      这也可以是答案:

      import random
      import string
      
      ls = []
      while len(ls) !=10:
          rand = random.choice(string.ascii_letters)
          rand =rand.lower()
          if rand not in ls:
              ls.append(rand)
      

      因为这确实会得到重复的字母。此代码获得随机唯一 10 个字母

      【讨论】:

        猜你喜欢
        • 2011-02-18
        • 2018-12-13
        • 2022-01-16
        • 1970-01-01
        • 2011-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多