社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

在Python中随机替换两个字符

Sarah • 3 年前 • 1216 次点击  

我有一根绳子

n = 'sophieMueller'

其中,我想用以下列表中的两个随机字符替换两个随机字符:

replace = [
    'X', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
]

像这样:s0phieM9eller

以下几点几乎起到了作用:

它会随机显示 n (例如:。 n[2] ( p ))并将其替换为随机的 list (例如:。 replace[6] ( 5 )).

n[randint(0, len(n))] = replace[randint(0, len(replace))]

print(''.join(n))

我唯一的问题是,当我想替换多个字符时,有时会出现错误。我猜这是因为他们试图在同一时间替换相同的标识?有什么解决办法吗?

n[randint(0, len(n))] = replace[randint(0, len(replace))]
n[randint(0, len(n))] = replace[randint(0, len(replace))]

对某些运行进行正确的输出,然后:

错误:

Traceback (most recent call last):
  File "/Users/x/Desktop/test.py", line 16, in <module>
    n[randint(0, len(n))] = replace[randint(0, len(replace))]
IndexError: list index out of range
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/132160
 
1216 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Timo
Reply   •   1 楼
Timo    3 年前

问题是 randint(x, y) 生成x和y之间的随机整数 包括x和y .

列表索引从零开始,在len(List)-1结束。如果 randint 碰巧选择了最大可能的数字——或者 len(n) len(replace) -它在列表中找不到相应的项,因为列表在该项之前结束了一项。

您需要的代码是:

n[randint(0, len(n)-1)] = replace[randint(0, len(replace)-1)]