我被要求对一组整数列表进行平方,然后对一组整数和浮点数进行立方体处理,然后将这些列表中的每一个修改为两个单独的空列表。
我在jupyter上使用python。我仅限于我们已经学过的东西(重要的一点-我已经尝试过使用尚未学到的功能,而教授更希望我只局限于我们已经讨论的主题)。我们学会了制作列表,测量列表的长度,修改列表,以及循环(使用rang)和while循环……这是非常基础的。
x = [2,4,6,8,10,12,14,16,18]
y = [10,8.25,7.5,7,6.5,7,7.5,8.25,10]
# initialize new lists below
xsquared = []
ycubed = []
# loop(s) to compute x-squared and y-cubed below
for item_X in x:
item_X **= 2
for item_Y in y:
item_Y **= 3
# Use .append() to add computed values to lists you initialized
xsquared.append(item_X)
print(xsquared)
ycubed.append(item_Y)
print(ycubed)
# Results
实际结果:
[324]
[1000]
预期结果:
[4, 16, 36, 64, 100.... 324]
[1000, 561.515625, 421.875.... 1000]
答案 0 :(得分:1)
使用列表理解,您可以按照以下步骤操作:
x_squared = [item_x**2 for item_x in x]
y_cubed = [item_y**3 for item_y in y]
答案 1 :(得分:0)
您仅附加最后一个结果。如果您希望坚持所讨论的主题,则应使用for
循环:
x = [2,4,6,8,10,12,14,16,18]
y = [10,8.25,7.5,7,6.5,7,7.5,8.25,10]
xsquared = []
ycubed = []
for item_X in x:
xsquared.append(item_X ** 2)
for item_Y in y:
ycubed.append(item_Y ** 3)
但是,最简单的方法是使用列表理解:
x = [2,4,6,8,10,12,14,16,18]
y = [10,8.25,7.5,7,6.5,7,7.5,8.25,10]
xsquared = [n ** 2 for n in x]
ycubed = [n ** 3 for n in x]
两种情况下的输出:
print(xsquared)
print(ycubed)
[4, 16, 36, 64, 100, 144, 196, 256, 324]
[1000, 561.515625, 421.875, 343, 274.625, 343, 421.875, 561.515625, 1000]
答案 2 :(得分:0)
如果您想避免列表推导或map()
x = [2,4,6,8,10,12,14,16,18]
y = [10,8.25,7.5,7,6.5,7,7.5,8.25,10]
x2 = []
y3 = []
for i in x:
x2.append(i*i)
for i in y:
y3.append(i**3)