反向打印列表不起作用-Python 3x

涡轮

我正在编写一个程序,不断要求用户输入名称,直到输入END为止,这时它将以相反的顺序打印出名称列表

最初,我不知道如何以相反的顺序打印列表,所以我发现了这一点:在Python中以相反的顺序遍历列表

我决定使用reversed()内置功能:

import getpass
import time
import sys
print("Welcome " + getpass.getuser() + "...")
time.sleep(0.25)
print("This program, powered by Python, it will ask you to enter names...")
time.sleep(0.5)
print("...once you have finished, enter END to print off your list")
names = []
while True:
    name = input("Please enter a name: ")
    if name == "END":
        print(reversed(names))
        sys.exit()
    names.append(name)

但是,它显示的全部是:

<list_reverseiterator object at 0x0000000002A14F28>

为什么会发生这种情况,我该如何解决这个问题?

非常感谢

reversed返回一个迭代器,它将以相反的顺序迭代列表。它不会返回反向列表。这是一个重要的区别,因为如果返回的是反向列表,则必须在内存中分配该列表。因此,您最终会得到一份副本。并且您将必须对其进行两次迭代(一次用于创建反向列表,然后一次用于打印)。

相反,它reversed只是在原始列表的末尾开始迭代。如果在创建reversed迭代器后修改列表,则可以轻松地看到以下内容

>>> a = [1,2,3,4,5]
>>> r = reversed(a)
>>> a[2:2] = [10, 11, 12, 13]
>>> a
[1, 2, 10, 11, 12, 13, 3, 4, 5]
>>> list(r)
[12, 11, 10, 2, 1]

颠倒的迭代器只是想起指数在那里将开始迭代(即指数4)。使用修改后的列表,该列表不再是列表的末尾。

因此,如果要以相反的顺序复制列表,则必须对其进行调用list以从中创建一个列表。否则,如果可以的话,您实际上应该只尝试在迭代reversed上进行迭代。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python3-cd在反向shell中不起作用

来自分类Dev

在Python 3x中对列表/元组执行计算的最佳方法

来自分类Dev

在python 3x中使用For语句

来自分类Dev

如何在python 3x中将文本文件中的行追加到多个列表

来自分类Dev

将 Python 2x 移植到 3x

来自分类Dev

Python:打印列表时,append()函数不起作用?

来自分类Dev

Python排序/反向与argparse不起作用

来自分类Dev

我的Python 3x代码有什么问题?

来自分类Dev

What is wrong with my Python 3x code?

来自分类Dev

Maya Python 3x - 根据法线角选择边

来自分类Dev

为什么在列表中使用 x 并更改 x 的值在 Python 中不起作用

来自分类Dev

Python打印到文件不起作用

来自分类Dev

打印在Python 3.3中不起作用?

来自分类Dev

(“”)打印在python中不起作用

来自分类Dev

打印功能不起作用python

来自分类Dev

Python3请求-不起作用

来自分类Dev

python 3 suds缓存不起作用

来自分类Dev

Python 3绝对导入不起作用

来自分类Dev

python 3导入不起作用

来自分类Dev

Python3请求-不起作用

来自分类Dev

For 循环在 python 3 中不起作用

来自分类Dev

Python洗牌列表不起作用

来自分类Dev

python中的相交列表不起作用

来自分类Dev

Python列表分配不起作用

来自分类Dev

Python 2.7。迭代列表不起作用

来自分类Dev

Python 列表 isalpha 不起作用

来自分类Dev

在python 3x中以0开头创建随机数

来自分类Dev

我应该为python 3x使用哪种表小部件模块

来自分类Dev

如何在python 3x中将数据保存到csv文件而不会重复?