将字符串中的随机字符转换为大写

use*_*260 5 python

我试图随机附加文本字符串,而不是像输出一样

>>>david
Run Code Online (Sandbox Code Playgroud)

我最终会有类似的东西

>>>DaViD
>>>dAviD
Run Code Online (Sandbox Code Playgroud)

我现在的代码就是这个

import random
import string

print "Name Year"
text_file = open("names.txt", "r")
for line in text_file:
    print line.strip()+"".join([random.choice(string.digits) for x in range(1, random.randint(1,9))])
Run Code Online (Sandbox Code Playgroud)

它声称这个

>>>JOHN01361
Run Code Online (Sandbox Code Playgroud)

我想要那个字符串就像

>>>jOhN01361
>>>john01361
>>>JOHN01361
>>>JoHn01361
Run Code Online (Sandbox Code Playgroud)

Noo*_*ilk 7

好吧,你的规范实际上是随机大写的字符,如果你是如此倾向,你可以通过以下列表理解来实现:

import random

s = "..."
s = "".join( random.choice([k.upper(), k ]) for k in s )
Run Code Online (Sandbox Code Playgroud)

但可能有更好的方式......

  • `k.upper()if random.choice([True,False])其他k`是不必要的复杂.只需使用`random.choice([k.upper(),k])`:) (5认同)