2 回答
TA贡献1853条经验 获得超18个赞
好的,最后一行的作用是,
[(2 * x) for x in range(64)],它给你一个 64 个数字的列表(乘以 2),然后我们有一个条件说if x in [(4 * j) for j in range(16)]。如果存在与第一个列表相同的数字,它将检查第二个列表,并且在最终 OP 中仅考虑这些数字。
操作函数_1:
[(2 * x) for x in range(64)]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126]
操作函数_2:
[(4 * j) for j in range(16)]
# [0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60]
查找第二个列表中的第一个列表中是否有数字并调用它们x,然后返回2 * x
print([x*2 for x in range(64) if x in [j*4 for j in range(16)]])
# [0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120]
TA贡献1797条经验 获得超4个赞
也许这会有所帮助:
线
output = [function_1(x) for x in range(64) if x in [function_2(j) for j in range(16)]]
相当于
output = []
y = [function_2(j) for j in range(16)]
for x in range(64):
if x in y:
output.append(function_1(x))
添加回答
举报