Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何部分编校字符串_Python - Fatal编程技术网

Python 如何部分编校字符串

Python 如何部分编校字符串,python,Python,我正在寻找一种在列表中部分编辑字符串的方法 我有这样一份清单: list = ['google.com', 'bing.com', 'duckduckgo.com'] 我希望这张单子的结局是这样的 redacted_list = ['**ogl*.com', 'b**g.com', '*u*kd***go.com'] 我已经研究过如何使用函数random.choices(),但不知道如何用asterix替换这些选项。任何关于如何进行这项工作的建议都会很有用,我所能找到的只是关于完全编校单词的

我正在寻找一种在列表中部分编辑字符串的方法

我有这样一份清单:

list = ['google.com', 'bing.com', 'duckduckgo.com']
我希望这张单子的结局是这样的

redacted_list = ['**ogl*.com', 'b**g.com', '*u*kd***go.com']
我已经研究过如何使用函数random.choices(),但不知道如何用asterix替换这些选项。任何关于如何进行这项工作的建议都会很有用,我所能找到的只是关于完全编校单词的信息,而不是关于字符串中50%字符的部分编校。

试试:

import random
result = []
for i in l1:
    i,suffix = i.rsplit('.') 
    temp = [k for k in i]
    for j in random.sample(range(len(i) - 1),len(i)//2):
        temp[j] = '*'
    result.append(''.join(temp) + '.' + suffix)

print(result) # ['**o*le.com', '*i*g.com', '*u**d*ckg.com']
试试这个

随机导入
res=[]
name=['google.com'、'bing.com'、'duckduckgo.com']
对于名称中的名称:
新建url=“”
域,p=name.split('.')[0],name.split('.')[-1]
长度=len(域)
random\u char\u index=set([random.randint(1,长度)表示范围内的i(长度)])
对于索引,枚举中的字符(域):
如果随机字符索引中的索引:
新url+=“*”
其他:
新url+=char
新url+=“+p”
res.append(新url)
打印(res)
代码:

随机导入
def转换(输入列表):
大纲=[]
对于inlist中的域:
domain,tld=domain.split(“.”)#google.com:domain包含google,tld包含com
domain=list(domain)#需要将str转换为list-如果我们不这样做,domain[i]=“*”将失败
要_replace=random.choices(range(len(domain)),k=random.randint(0,len(domain)))#选择要替换的域名字母
对于要替换的i in,请执行以下操作:
域[i]=“*”
append(“.join(domain)+”+tld)#将g*o*l*和com放回一起,并将结果附加到输出
返回时间最长
inlist=['google.com','bing.com','duckduckgo.com']
对于indomain,zip中的outdomain(inlist,convert(inlist)):
打印(“%s”变为“%s”%(indomain,outdomain))
样本输出:

google.com变成了g*og*e.com
bing.com变成了bin*.com
duckduckgo.com变成了d*c*d**k**.com

你能告诉我们到目前为止你尝试了什么吗?
名称错误:名称“l1”未定义
…l1=['google.com'、'bing.com'、'duckduckgo.com']我已经使用l1作为初始字符串的名称,我想OP只希望域名被星号标记,而不是点或
.com
请将其放入你的代码中。@Programmer DoneOkay,您的代码可以工作……但从第二个视图可以看出,您学习Python的时间不长!;)