suanfaxiazai
2017-12-21 07:37
采纳率: 72.7%
浏览 2.9k
已采纳

python生成器输出值?

 >>> stack = [(v for u, v in G.edges('130'))]
>>> stack
[<generator object <genexpr> at 0x09E6F120>]
>>> for i in stack:
    print i


<generator object <genexpr> at 0x09E6F120>
>>> type(stack)
<type 'list'>
>>> 

为什么不能输出stack里面的值,如何才能输出stack里面的值?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • oyljerry 2017-12-21 07:39
    已采纳
     for i in stack:
        for j in i:
                print(j)
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • lhd0530 2017-12-21 08:26

    for i in stack:
    for j in i:
    print(j)

    评论
    解决 无用
    打赏 举报
  • 幸福丶如此 2017-12-21 08:44

    生成器对象,一般用 () ,比如 aa = (v for u, v in G.edges('130')) ,生成器对象只有一个next方法,next(aa) ;或者使用for循环

    而作者 stack = [(v for u, v in G.edges('130'))] ,这个是将生成器对象放入到列表中,当对stack进行循环的时候,取出来的是列表中的元素,也就是生成器对象,如果想取值,也可以用 for i in stack[0]: print(i)

    评论
    解决 无用
    打赏 举报
  • qq_28321573 2019-01-26 17:25

    试试这个方案可以不?
    stack = (v for u, v in G.edges('130')) #将stack定义为一个generator
    list(stack) #根据你的意思,将其转化为list

    评论
    解决 无用
    打赏 举报
  • cmwl8 2019-01-26 17:41

    D:\Python\python\python-3.6.1\Python36-64\python.exe

    create counter

    2

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题