我在python上有以下列表:
items = [5,4,12,7,15,9]
我希望以这种形式打印:
9,15,7,12,4
我该怎么做?
答案 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)
使用reversed
和str.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
的元素,这与经典迭代器的方式有些相同。