我有一个列表,我想用范围和 for 循环打印它的内容范围

I have a list and I want to print a range of it's content with range and for loop

我在 python 上有以下列表:

items = [5,4,12,7,15,9]

我想以这种形式打印:

9,15,7,12,4

我该怎么做?

numbers_list = [5,4,12,7,15,9]

for index in range(len(numbers_list)):
  print(numbers_list[(index + 1) * - 1])

不确定是不是很"Pythonic"

由于列表索引被取反,您可以按相反的顺序访问元素。

Python 中的最后一个索引是列表 [-1] 依此类推,直到第一个索引是列表长度 -1(在这种情况下加一以获得更接近 0 的负数)。

使用 reversedstr.join:

numbers = [5, 4, 12, 7, 15, 9]
print(",".join(str(n) for n in reversed(numbers)))  # 9,15,7,12,4,5
就性能而言,

str.join 比使用 mystring += "something" 构建自己的字符串要好得多。 How slow is Python's string concatenation vs. str.join? 对此提供了有趣的见解。

我也可以写一个列表理解来构建一个像这样的中间列表:

reversed_string = [str(n) for n in reversed(numbers)]
print(",".join(reversed_string))

但是写列表理解意味着我们在内存中存储了两倍的列表(原始列表和 "strigified" 列表)。使用生成器将动态计算 str.join 的元素,有点像经典迭代器所做的。