python - 使用递归序列
问题描述
我正在尝试编写一个函数,该函数输出所有可能的字符列表组合,其中包含长度且没有任何重复,如 aa、bb 等。
我现在在这个阶段:
def sequences(char_list, n, lst = []):
if len(lst) == n:
print(lst)
else:
for i in range(len(char_list)):
temp_list = [char_list[j] for j in range(len(char_list)) if i != j]
sequences(temp_list, n, lst + [char_list[i]])
print(sequences(["a", "b", "c"], 2))
输出是正确的,但最后我没有。我其实不知道为什么。
['a', 'b']
['a', 'c']
['b', 'a']
['b', 'c']
['c', 'a']
['c', 'b']
None
在输出中获取字符串而不是列表的最佳方法是什么?
解决方案
该函数sequences
不返回任何内容(return
代码中没有任何语句),因此它会自动返回None
. print(sequences(["a", "b", "c"], 2))
将执行此函数并打印其返回值,输出None
.
要获取字符串而不是列表,请像这样连接列表中的所有字符串:
print(''.join(lst))
推荐阅读
- node.js - 创建 JSON 响应键值的 mongodb 集合
- reactjs - 了解 React 中的 Redux
- .net-core - .Net Core2.2:Swagger 不显示 UI
- azure - 使用 CloudTable 与 partitionKey 和 rowKey 筛选器绑定到 v2 Azure Functions 中的表存储
- javascript - 使用 JavaScript/python 获取音频峰值
- notifications - 运行前台服务以获取位置的问题
- amazon-web-services - Master公共DNS指向内部时如何连接到emr mastere节点?
- scala - Spark [Scala]:不明确的 groupBy 列名
- hana - 当我尝试创建数据存储、数据库 SAP HANA CLOUD 时,在地理服务器中使用了错误的端口 (30015) 号
- mysql - mysql 允许在终端中使用每个密码进行访问,但在 Laravel 中则不允许