列表推导式是一种简洁的创建列表的方法。它的基本语法是
[表达式 for 项 in 可迭代对象 if 条件]
。例如,[x**2 for x in range(10) if x % 2 == 0]
会生成一个包含0到9的偶数的平方的列表。
题目要求:输入x、y、z分别为列表三个维度的最大值,将三个维度所有可能的取值循环组合,最终删除三个维度相加为n的列表。
实现:
if __name__ == '__main__':
x_max = int(input())
y_max = int(input())
z_max = int(input())
n = int(input())
#使用三重嵌套列表推导式生成所有可能的坐标
coords = [(x, y, z) for x in range(x_max+1) for y in range(y_max+1) for z in range(z_max+1)]
#删除坐标的x、y、z之和等于n的坐标
valid_coords = [coord for coord in coords if sum(coord) != n]
#按字典序排序输出结果
valid_coords.sort()
#按题目要求,将有效的坐标从元组转换成列表
print([list(x) for x in valid_coords])
输出结果: