【问题标题】:How to Create a structure (e.g. a list) from a for loop output?如何从 for 循环输出创建结构(例如列表)?
【发布时间】:2021-02-08 15:04:27
【问题描述】:
u = range(1,30,1)
for s in u:
    print(s**-1*500)

我需要帮助来根据 For 循环的结果创建列表或数组。

【问题讨论】:

  • 注意step的默认值range的第三个参数是1。所以range(1,30,1)range(1,30) 相同。另请注意,结果列表将包含 29 个元素,而不是 30 个,因为它从包含的 1 到排除的 30

标签: python arrays list for-loop data-structures


【解决方案1】:

使用列表理解。

u = [s**-1*500 for s in range(1,30)]

注意事项: range 默认步骤是1,所以这里可以跳过。 列表推导通常比在for 循环中将元素附加到列表更快。这也是执行此类任务的更 Pythonic 方式。

【讨论】:

  • 请注意s**-1*500s**(-1*500)有很大不同。
【解决方案2】:
# Create an empty list
item_list = []
for s in u:
    # Append each item to list.
    item_list.append(s**-1*500)

【讨论】:

  • 从不在python中调用变量list。这个名称已经用于内置类list,这是非常重要的。不要掩盖它。
  • 比列表理解要慢
  • @Stef 你是对的。我编辑了代码。感谢您的意见。
【解决方案3】:

你有两种方法可以做到。

For循环

u = range(1,30,1)
values = []
for s in u:
    values.append(s**-1*500)

列表理解

values = [s**-1*500 for s in range(1,30,1)]

使用适合您需要的任何一个

【讨论】:

  • 请注意s**-1*500s**(-1*500)有很大不同。
  • 谢谢。不错的选择。我已经修好了。
  • 另外请从不在python中调用变量list。这个名字已经用于内置类list,这是非常重要的。不要掩盖它。
  • 这两个命题也不一致——第一个中u是范围,而第二个中u是结果列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 1970-01-01
相关资源
最近更新 更多