python - 将查找字符串所有排列的函数转换为生成器
问题描述
我有以下函数来查找正确工作的字符串的所有排列:
def permute_string(str):
if len(str) == 0:
return ['']
prev_list = permute_string(str[1:len(str)])
next_list = []
for i in range(0,len(prev_list)):
for j in range(0,len(str)):
new_str = prev_list[i][0:j]+str[0]+prev_list[i][j:len(str)-1]
if new_str not in next_list:
next_list.append(new_str)
return next_list
我想把它变成一个返回生成器的函数,以便当我这样做时:
gen = permute_string("abc")
print(next(gen))
我会得到“abc”。我尝试在附加new_str
到 my之后添加一个 yield 语句,next_list
但它不起作用(即我收到以下消息:TypeError: object of type 'generator' has no len(),这很正常)
解决方案
推荐阅读
- r - 使用 R 中的剪切函数剪切数据时显示空组
- ruby-on-rails - 如何在 reactJS 中处理重定向?
- javascript - 当我是参数化路由时如何重定向到原始路由
- c# - Rigidbody 和 Rigidbody2D 为什么条件运算符不起作用?
- php - 如何解决 laravel 中的 softdelete restore() 问题
- python - Python:将实例传递给嵌套函数
- python - Python 正则表达式 - 替换 IP 地址
- android - 无法将设备连接到 android studio(设备名称显示在顶部的栏中)
- java - 安全传输 SecretKey 以对密码进行加密/解密
- java - Java中的actionPerformed(ActionEvent ae)和(ActionEvent e)有什么区别?