我有一个列表,我想打印一系列的内容与范围和循环

时间:2017-10-20 12:05:32

标签: python-3.6

我在python上有以下列表:

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

我希望以这种形式打印:

9,15,7,12,4

我该怎么做?

2 个答案:

答案 0 :(得分:0)

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

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

不确定它是否非常“Pythonic”

由于列表indeces被否定,您可以按相反的顺序访问元素。

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

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

但是编写列表理解意味着我们将内存存储在列表的两倍(原始列表和“格式化”列表)。使用生成器将动态计算str.join的元素,这与经典迭代器的方式有些相同。