首页 > 解决方案 > 使用 print(x for x in list) 打印意外结果?

问题描述

当我使用此代码时 - sys.path 是一个列表,它的成员是字符串 - 但是当使用下面的代码时,它显示在 0x00B38C30>,请解释为什么?

代码 :

import sys
print(x for x in sys.path)

sys.path 是这个

['C:\\Users\\eastwood\\OneDrive\\Python_Work\\Trials', 'C:\\Users\
\eastwood\\OneDrive\\Python_Work\\Trials', 'C:\\Users\\eastwood\\A
ppData\\Local\\Programs\\Python\\Python37-32\\python37.zip', 'C:\\
Users\\eastwood\\AppData\\Local\\Programs\\Python\\Python37-32\\DL
Ls', 'C:\\Users\\eastwood\\AppData\\Local\\Programs\\Python\\Pytho
n37-32\\lib', 'C:\\Users\\eastwood\\AppData\\Local\\Programs\\Pyth
on\\Python37-32', 'C:\\Users\\eastwood\\AppData\\Local\\Programs\\
Python\\Python37-32\\lib\\site-packages']

print(x for x in sys.path) 

<generator object <genexpr> at 0x00B38C30>

import sys
print(x for x in sys.path)

我期待代码打印 sys.path 列表的成员!

标签: pythonpython-3.xpython-2.7

解决方案


如果你在循环周围没有任何东西,它将成为一个生成器,所以使用:

import sys
print([x for x in sys.path])

推荐阅读