python - 无法将正确答案附加到python中的列表
问题描述
我试图在列表上执行以下操作 2 次:
-> for each index i: arr[i] = d - arr[i] where d is maximum element in list
-> append the resultant list to another list
我的代码:
arr = [5, -1, 4, 2, 0]
n = len(arr)
res = []
for _ in range(2):
d = max(arr)
for i in range(n):
arr[i] = d-arr[i]
res.append(arr)
print(res)
输出:
[[6, 0, 5, 3, 1], [6, 0, 5, 3, 1]]
预期输出:
[[0, 6, 1, 3, 5], [6, 0, 5, 3, 1]]
请帮忙!
解决方案
您放入arr
列表res
,但在第二个循环中不断修改其值。直接用值创建一个新的子列表,否则您的更改将反映在res
所有相同指向的元素上arr
。
# Using your conventions.
arr = [5, -1, 4, 2, 0]
res = []
for _ in range(2):
d = max(arr)
res.append([])
for i in range(len(arr)):
arr[i] = d-arr[i]
res[-1].append(arr[i])
print(res)
# >>> [[0, 6, 1, 3, 5], [6, 0, 5, 3, 1]]
请注意,您的变量名称很难理解,因此这里有一个变体:
array = [5, -1, 4, 2, 0]
results = []
for _ in range(2):
array_max = max(array)
results.append([])
for i in range(len(array)):
array[i] = array_max - array[i]
results[-1].append(array[i])
print(results)
推荐阅读
- ios - 找不到具有指定主机名的服务器。加载页面时出错。条纹,Firebase 后端
- python - 使子图正常工作的问题
- matplotlib - 从虚拟机输出python图表到主机
- javascript - extjs 表单元素中的 Extjs 组合框在禁用时未灰显
- python - 使用 python 包导入带有 anaconda 的 opencv
- javascript - 将 React TS 接口转换为 React JS
- regex - .htaccess mod_rewrite 在组为空时跳过捕获组
- python - 检查角色是否具有权限 - Discord.py
- python - __init__() 缺少 4 个必需的位置参数
- node.js - 自定义钩子是否可用于 node.js 生命周期?