Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么使用“打印”(iterable)时输出不打印?_Python_Python 2.7 - Fatal编程技术网

Python 为什么使用“打印”(iterable)时输出不打印?

Python 为什么使用“打印”(iterable)时输出不打印?,python,python-2.7,Python,Python 2.7,我不明白为什么在使用list后,情况1和第二种情况下不打印输出 案例一: s='india' print(reversed(s)) 输出 <reversed object at 0x...> ['a', 'i', 'd', 'n', 'i'] 输出 <reversed object at 0x...> ['a', 'i', 'd', 'n', 'i'] 如果要反转字符串,请尝试以下操作: string = ''.join(reversed(s)) 这是因为r

我不明白为什么在使用
list
后,情况1和第二种情况下不打印输出

案例一:

s='india'

print(reversed(s))
输出

<reversed object at 0x...>
['a', 'i', 'd', 'n', 'i']
输出

<reversed object at 0x...>
['a', 'i', 'd', 'n', 'i']

如果要反转字符串,请尝试以下操作:

string = ''.join(reversed(s))
这是因为reversed输出一个迭代器,迭代器不保存值,而是动态计算值。“”联接部分使用生成器并生成字符串


有关生成器/迭代器的更多信息,请参见Python文档中的:

返回一个反向迭代器。seq必须是具有
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\uuuu len\uuuuu()方法和带有整数的
\uuuu getitem\uuuuuu()方法
从0开始的参数)

构造函数生成一个列表,其中的项相同且位于相同的位置 按iterable的项目订购。iterable可以是序列,也可以是 支持迭代的容器或迭代器对象。如果可以的话 已经是一个列表,复制并返回,类似于 iterable[:]。例如,
list('abc')
返回
['a','b','c']
列表((1,2,3))
返回
[1,2,3]
。如果没有给出任何参数,则 构造函数创建一个新的空列表,
[]

因此:

reversed(string)
将返回一个遍历字符串的迭代器<代码>列表(迭代器)
将迭代器转换为列表<代码>列表(字符串)
将字符串拆分为其组成字符

因此

list('india')
返回
['i','n','d','i','a']

reversed('india')
返回作为迭代器的

可以使用
list
运算符将迭代器转换为列表:

列表(反向('india'))
返回
['a','i','d','n','i']

或者,您可以对其进行迭代:

for n in reversed('india'):
   print(n)
打印出来的

a
i
d
n
i

在案例1中打印输出。输出是一个迭代器。您是否尝试打印
list
以查看生成的内容?请参阅位于的python文档以获取
reversed
,您可以看到结果。你的两个箱子都印了些东西。第一种情况的结果是迭代器。您不会将结果视为
['a',i',d',n',i']
,因为这不是结果-您必须使用迭代器才能查看其内容,正如
列表(…)
所做的那样。请注意,不确定这是被否决的原因。这似乎很好(虽然没有公认的答案那么深入)