【问题标题】:program that generates the squares of numbers from 1 to 20 in a list on python在python列表中生成从1到20的数字平方的程序
【发布时间】: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


【解决方案1】:

使用 list comprehension 的 Pythonic 方式:

squares = [i ** 2 for i in range(1, 21)]

# Use slicing to store the first and the last 5 elements
new_list = squares[:5] + squares[-5:]

print(new_list)

输出:

[1, 4, 9, 16, 25, 256, 289, 324, 361, 400]

【讨论】:

  • 你正在为他做功课......
  • 此外,解释正在发生的事情的答案比代码转储更有用
  • @treuss 公平地说,他几乎就在那里,但看起来他不知道如何连接这两个列表。
猜你喜欢
  • 2011-02-20
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
  • 2021-10-02
  • 1970-01-01
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
相关资源
最近更新 更多