python - 使用循环在列表中创建列表
问题描述
我正在尝试创建一个返回 n 元素列表的函数,如下所示:
factorial_list(4) → [[1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
我的输出是[[1], [1], [2], [1], [2], [3], [1], [2], [3], [4]]
如您所见,我正在努力确定内部列表的顺序。对我应该在代码中更改什么有任何见解吗?
def factorial_list(n):
list2=[]
for i in range(1,n+1):
for j in range(1,i+1):
list2.append([j])
print(list2)
factorial_list(4)
解决方案
方法一:根据你的代码逻辑
def factorial_list(n):
final_list = []
for i in range(1, n+1):
temp = []
for j in range(1, i+1):
temp.append(j)
final_list.append(temp)
print(final_list)
factorial_list(4) # [[1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
方法 2:for 循环和列表推导的混合
def factorial_list(n):
final_list = []
for i in range(1, n+1):
temp = [j for j in range(1, i+1)]
final_list.append(temp)
print(final_list)
factorial_list(4) # [[1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
方法 3:使用列表推导
def factorial_list(n):
final_list = [[j for j in range(1, i+1)] for i in range(1, n+1)]
print(final_list)
factorial_list(4) # [[1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]
推荐阅读
- hyperledger-fabric - 未能在 Hyperledger Fabric 中注册新用户
- image - 智能幻灯片软件
- python - 如何对嵌套字典的值求和
- excel - 如何使 OptionButton ActiveX 控件将背景颜色更改为透明?
- javascript - 使用 Javascript .push 方法推入数组后无法使用 JSON 数据
- android - 三输入字段搜索
- erlang - 海鸥服务器未收到直径请求
- mysql - 通过 sql 命令将 sql 文件加载到数据库中
- android - 通过标记时 Mapbox 重新路由
- python - 如何使用 Ruptures 计算真实数据中的变化点数量?