【问题标题】:Choose Lower and Uppercase randomly without adding it manually随机选择小写和大写,无需手动添加
【发布时间】:2019-11-05 23:37:42
【问题描述】:

我想用字母创建一个列表/数组,然后让我的程序选择其中一个,但我希望它随机小写和大写

我可以用这个:

list = "A", "a", "B", "b"
print(random.choice(list))

但是有没有办法只在列表中添加一个字母,然后让程序随机进行大写的随机化

【问题讨论】:

  • random.choice(string.ascii_letters)…?
  • 不要用同名的变量(甚至不是列表)覆盖内置的list
  • is there a way to just add one letter to list ,这是否意味着您只想添加小写字母并随机选择小写字母或大写字母
  • 不清楚你在问什么。包括所需的输入/输出行为,而不是让事情变得不清楚。这可以节省每个人的时间,包括您自己的时间

标签: python


【解决方案1】:

您可以使用str.upper 创建大写字符列表,然后在上面执行random.choice

另外,由于list 是python 内置名称,请勿将其用作变量

import random

#List of lowercase characters
li = ["a", "b"]

#Add list of all uppercase characters to original list
li += [item.upper() for item in li]
#['a', 'b', 'A', 'B']

print(random.choice(li))

此外,还有一种更简单的方法可以做到这一点,而无需根据 cmets 中的@deceze 创建所有字母的列表,使用 string.ascii_letters,这是一个大写和小写 ascii 的列表字母

import string
print(random.choice(string.ascii_letters))

【讨论】:

    【解决方案2】:

    您可以编写一个简单的函数来为每个字母或完整的文本执行此操作:

    import random
    
    def random_case(text):
        return text.upper() if random.randint(0,1) == 1 else text.lower()
    
    your_list.append(random_case("a"))
    

    【讨论】:

      【解决方案3】:

      我提供了一个解决方案,以防您的初始列表中同时包含大写和小写字母,并且您希望涵盖所有选项。这个想法是你随机选择一个,然后你随机选择大写或降低它。

      from random import choice, getrandbits
      
      res = choice(my_letters).lower() if getrandbits(1) else choice(my_letters).capitalize()
      

      所以假设:

      my_letters = ['x', 'L']
      

      您可以以相同的概率获得'x''X''L''l' 中的所有 4 个。


      注意我使用getrandbits的原因详细描述here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-18
        • 1970-01-01
        • 2019-01-31
        • 1970-01-01
        • 2020-03-06
        • 2021-06-11
        • 2018-01-14
        • 2015-02-20
        相关资源
        最近更新 更多