相关疑难解决方法(0)

在Python中没有[]的列表理解

加入清单:

>>> ''.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 list-comprehension

76
推荐指数
4
解决办法
1万
查看次数

如何在Python中修改字符串中的单个字符?

如何在Python中修改字符串中的单个字符?就像是:

 a = "hello"
 a[2] = "m"
Run Code Online (Sandbox Code Playgroud)

'str'对象不支持项目分配.

python string

16
推荐指数
3
解决办法
1万
查看次数

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

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

>>>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)

python

5
推荐指数
1
解决办法
3752
查看次数

将字符串的每个字母随机大写的代码(代码清理帮助)

我是一名初级编码员,我最近创建了一个函数,该函数接受一个字符串并随机将每个字母大写。

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)

该代码按我的意图工作,但是有什么方法可以使此代码更清晰吗?我个人认为这很难阅读。有没有其他方法可以压缩代码以使其更具可读性/效率?谢谢!

python

5
推荐指数
2
解决办法
135
查看次数

标签 统计

python ×4

list-comprehension ×1

string ×1