【发布时间】:2023-01-12 08:15:32
【问题描述】:
我想制作一个程序,生成列表中从 1 到 20 的数字的平方。它只存储前 5 个元素,然后最后 5 个元素进入新列表。然后它打印新列表。我不太明白这些说明,但它是:(“编写一个程序,生成 1 到 20 之间的数字的平方。只存储前 5 个元素和后 5 个元素在新列表中。打印新列表。” ) 我想出了这个,但我觉得这是错误的(?),我想要一个更自动的代码。
square = []
for i in range(1, 21):
square.append(i * i)
middleIndex = 10
firstHalf = square[:middleIndex]
secHalf = square[middleIndex:]
index = 5
first = firstHalf[:index]
second = firstHalf[index:]
index2 = 5
f1 = secHalf[:index2]
f2 = secHalf[index2:]
print(first)
print(second)
print(f1)
print(f2)
我只是搞砸了对方向的理解吗?
这是输出:
[1, 4, 9, 16, 25]
[36, 49, 64, 81, 100]
[121, 144, 169, 196, 225]
[256, 289, 324, 361, 400]
我所做的只是一直分裂它。
【问题讨论】:
-
根据我的阅读,作业要求您将前 5 个和后 5 个存储在同一个列表中。 IE。
squares = [(x+1)**2 for x in range(20)]和result = squares[:5] + squares[-5:] -
我读到新列表应该包含
[1, 4, 9, 16, 25, 256, 289, 324, 361, 400]。然而,这种做法是任意的,措辞不明确。无论如何,查找“列表理解” -
您已正确完成练习的第一部分:
square是包含您想要的所有方块的列表。现在您想找到一种方法来获取列表中的前 N 项(您已经知道怎么做)和列表中的最后 N 项。你试过asking that question了吗? -
@PranavHosangadi 他似乎知道该怎么做,因为他在给
first的作业中做到了 -
我认为您遇到的唯一麻烦是如何连接两个列表。你可以用
list1 + list2来做到这一点。result = first + f2
标签: python python-3.x list