y学习吧! 发表于 2022-7-26 16:04:10

想通过集合不可重复的特性实现对一个字符串的打乱

import random
def fy_shuffle(string):
    length=int(len(string))
    for i,j in enumerate(string,start=1):
       dic={j:i}
    r=random.randint(1,length)
    setted=set(dic.pop(r))
string=input("请输入需要打乱的字符串:")
result=fy_shuffle(string)
print("打乱后的结果是",result)


分别在第7行和第九行报错

青出于蓝 发表于 2022-7-26 16:22:46

本质上只有第7行报错,第九行只是因为调用函数而函数内出错而已
import random
def fy_shuffle(string):
    setted=set()
    for i in range(len(string)*2):
      r=random.randint(0,len(string)-1)
      setted.add(string)
    return setted
string=input("请输入需要打乱的字符串:")
result=fy_shuffle(string)
print("打乱后的结果是",result)


本身思路就有问题,如果一个字符串内出现相同字母,因为集合只有唯一,那多余的只能被过滤掉了
也完全不需要这么麻烦
页: [1]
查看完整版本: 想通过集合不可重复的特性实现对一个字符串的打乱