平方一个列表,然后将整个列表修改为一个空列表

时间:2019-01-13 21:07:19

标签: python list loops

我被要求对一组整数列表进行平方,然后对一组整数和浮点数进行立方体处理,然后将这些列表中的每一个修改为两个单独的空列表。

我在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]

3 个答案:

答案 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)