加入清单:
>>> ''.join([ str(_) for _ in xrange(10) ])
'0123456789'
Run Code Online (Sandbox Code Playgroud)
join 必须采取迭代.
显然,join这个论点是[ str(_) for _ in xrange(10) ],这是一个列表理解.
看这个:
>>>''.join( str(_) for _ in xrange(10) )
'0123456789'
Run Code Online (Sandbox Code Playgroud)
现在,join这个论点只是str(_) for _ in xrange(10),不[],但结果是一样的.
为什么?是否str(_) for _ in xrange(10)也会产生一个列表或一个可迭代?
如何在Python中修改字符串中的单个字符?就像是:
a = "hello"
a[2] = "m"
Run Code Online (Sandbox Code Playgroud)
'str'对象不支持项目分配.
我试图随机附加文本字符串,而不是像输出一样
>>>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) 我是一名初级编码员,我最近创建了一个函数,该函数接受一个字符串并随机将每个字母大写。
def rand_upper(string):
import random
strList = [l for l in string.lower()]
newList = []
for i in strList:
j = random.randrange(2)
if j == 1:
letter = i.upper()
newList.append(letter)
else:
newList.append(i)
return "".join(newList)
Run Code Online (Sandbox Code Playgroud)
该代码按我的意图工作,但是有什么方法可以使此代码更清晰吗?我个人认为这很难阅读。有没有其他方法可以压缩代码以使其更具可读性/效率?谢谢!