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里面的值?

0

5个回答

 for i in stack:
    for j in i:
            print(j)
0
weixin_40968491
weixin_40968491 666
一年多之前 回复

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

1

生成器对象,一般用 () ,比如 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)

0

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

0

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

create counter

2

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python3 列表解析与generator生成器
t = [1,2,3,4] print(t) t = [x+10 for x in t] print(t) t = [x+10 for x in range(10)] print(t)输出为:如代码所示的两种列表解析的情况:第一种,先创建了一个list对象[],在in后面接这个list对象第二种,直接在in后面接一个range对象共同点,in后面的,都是可以迭代的对象。根据,列表解析,外部的函数...
Python中生成器的原理与使用详解
0.range() 函数,其功能是创建一个整数列表,一般用在 for 循环中 语法格式:range(start, stop, step),参数使用参考如下: start: 计数从 start 开始。默认是从 0 开始。例如range(4)等价于range(0, 4);结果:(0,1,2,3) stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[...
python3中的迭代器与生成器
迭代器(iterator) def add(s, x): return s + x def gen(): for i in range(4): yield i base = gen() for n in [1, 10]: base...
python3学习笔记:生成器generator
跟着廖大学python3一段日子了,这里简单了解下生成器generator,主要是yield的返回值和send的传参,记录下。生成器的基本属性generator = 函数 + yield 简单说,就是一个函数,里面用到了关键字yield,就成为了一个生成器 生成器和函数的不同主要在于: 直接调用生成器,不会执行; 举个栗子:c = f() #这里f()是个生成器 运行上面这句,f()不会执行,
Python生成器next方法和send方法
next方法:生成器的next方法获取yield语句返回的下一个值。也就是说,next函数返回的是yield后面的值,yield b(为了更加直观,可以加括号) In [78]: def fib(n): ...: i,a,b=0,0,1 ...: while i &amp;lt; n: ...: yield b ...: ...
python迭代器&生成器使用技巧(2):切片、遍历、索引值、多序列、多容器对象
1. 迭代器切片 迭代器和生成器不能使用标准的切片操作,因为它们的长度事先并不知道(并且也没有实现索引)。 函数 islice() 返回一个可以生成指定元素的迭代器,通过遍历并丢弃直到切片开始索引位置的所有元素,然后开始一个个的返回元素,并直到切片结束索引位置。 import itertools def count(n): while True: yield n ...
深入理解python的生成器表达式和列表解析
前言       没有用过的东西,没有深刻理解的东西很难说自己会,而且被别人一问必然破绽百出。虽然之前有接触过python协程的概念,但是只是走马观花,这两天的一次交谈中,别人问到了协程,顿时语塞,死活想不起来曾经看过的东西,之后突然想到了yield,但为时已晚,只能说概念不清,所以本篇先缕缕python的生成器和yield关键字。 什么是生成器 生成器是一个特殊的程序,可以被用
Python3之生成器
1.生成器本质:迭代器2.自带yeild 关键字,调用此函数得到一个生成器3.多次调用函数就得到多个生成器4.send、yeild、while True循环要配套使用 使用send前要初始化将程序停到yeild位置将程序挂起,然后send()可以执行,直到遇到下一个yeild程序挂起并将下一个yeild后面的值返回(精华,理解了这句话就真正理解了send的用法)5.yeild返回值的时候不管yei
python生成器生成斐波那契数列
def gen_fib(): a1 = 0 a2 = 1 for i in range(10): a1,a2 = a2,a1+a2 yield a1 a = gen_fib() print(list(a)) 总结: 解析器在实时生成数据,数据不会驻留在内存中。因此,其执行效率很高! yield 是一个类似 return 的关键字,只是这个函...
Python—用生成器实现一个列表的无限循环
import time def traversal_list(alist, i): while True: length = len(alist) i = i%(length) yield alist[i] i += 1 def traversal_list2(alist): i = 0 f = traver
Python——关于生成器generator的理解
生成器(generator) 1. 简单生成器 # 列表推导 &amp;gt;&amp;gt;&amp;gt; [x * x for x in range(10) if x % 3 == 0] [0, 9, 36, 81] # 字典推导 &amp;gt;&amp;gt;&amp;gt; {i: &quot;{} squared is {}&quot;.format(i, i**2) for i in range(5)} {0: '0 squared is 0',...
python3 生成器
列表生成式:[x**2 for x in range(10)] 从这里部分取出元素 这部分执行结果 结果放到这个列表中&amp;gt;&amp;gt;&amp;gt; a= [x for x in range(10)] &amp;gt;&amp;gt;&amp;gt; print(a) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] &amp;gt;&amp;gt;&amp;gt; b= [x**2 for x in range(...
python的生成器在使用前千万不要打印出来查看!!
如题,否则后果很严重: 会显示该生成器已经空了 原理: 迭代器啊或者生成器啊这种类型,是一次性的,用完就没了
生成器实现斐波那契(Python)
def fibonicci(n): start = 0 def fib(x): if x == 0: return 0 elif x == 1: return 1 else: return fib(x - 1) + fib(x - 2) while sta...
Python打印杨辉三角-生成器语法yield的理解
先看代码。 def triangles(): # 定义最初的数据 1 ,存到列表中 lt = [1] # 进入循环 while True: # 使用yield语句产生一个生成器,返回当前列表 yield lt # 列表后追加元素 0 lt.append(0) # 列表生成式:原列表中前...
Python3 迭代器与生成器
迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()。 字符串,列表或元组对象都可用于创建迭代器: >>>list=[1,2,3,4] >>> it = i
Python生成器浅谈
首先,生成器generator是一个对象,而且是可迭代的,它保存的是算法,只有在用的时候调用它它才会去计算,这样就节省了大量的空间。 创建generator有很多方法,比较简单的一种就是把列表生成式的[]换成(),即可生成一个生成器。 &amp;gt;&amp;gt;&amp;gt; [x * x for x  in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] &amp;g...
Python 定义生成器的函数的返回值
mywang88 2019-05-28 在 Python 的函数中使用 yield 命令,可以将函数转化为一个生成器(generator): def count(): for n in range(99): yield n 此时,函数 count 实际上定义了一个生成器。 使用 type 函数检查,会发现 count 是一个函数对象, count() 是一个生成器对象。 ...
python用迭代器,生成器完成斐波那契数列
        我们发现迭代器最核心的功能就是可以通过next()函数的调用来返回下一个数据值。如果每次返回的数据值不是在一个已有的数据集合中读取的,而是通过程序按照一定的规律计算生成的,那么也就意味着可以不用再依赖一个已有的数据集合,也就是说不用再将所有要迭代的数据都一次性缓存下来供后续依次读取,这样可以节省大量的存储(内存)空间。        数学中有个著名的斐波拉契数列(Fibonacci...
python实现杨辉三角(使用生成器generator)
#将杨辉三角的每一行看成一个list,写一个生成器(generator),不断输出下一行list def triangel(n):     L=[1]                                                                 #定义一个list[1]     while True:         yield L
初识python迭代和生成器
接触python迭代器,生成器后,查阅资料整理了一些知识点,写了一些自己的感悟,如有错误希望及时指正。 有一个列表,依次读取其中的值,就是迭代的意思,当一个对象是可以迭代的,可以使用for in 对其进行迭代。 list = [1, 2, 3]     for i in mylist:         print(i)     #result:      1      ...
python 生成器的输出问题
generator_ex = (x*x for x in range(10))rnrnprint(next(generator_ex))rnprint(next(generator_ex))rnprint(next(generator_ex))rnprint(next(generator_ex))rnprint(next(generator_ex))rnrnfor i in generator_ex:rn print(i)rn rn rn在print几次之后,为什么for 循环的时候不是从生成器的第一个数字输出呢?rnrn反而是接着next的数据输出?
python生成器推导式
1.生成器推导式是继列表推导式后的有一中python推导式,他比列表推导式速度更快,占用的内存也更少。2.使用生成器对象时,可以根据需要将他转化为列表或者元组,也可以是哟个生成器对像__next__()方法或内置函数next()进行遍历,其具有惰性求值的特点,进行一次遍历后便不能再次方位内部元素,即访问一次立马清空生成器对象&amp;gt;&amp;gt;&amp;gt; g = ((i+2)**2 for i in r...
有关python 生成器 yield 的小实例----生成斐波那契数列
使用生成器主要目的是为了不在程序开始运行之时占用大量系统内存, 防止系统杀死进程.或者出现MemoryError (32bit的Python使用内存超过2G之后,就报这个错误) 接下来会用常规方法和生成器2种方式生成斐波那切数列, 废话不多说,直接上代码: 一般方法: f_n = [0,1] def f_num(n_len): for i in range(n_...
python_Day4:杨辉三角,利用generator 输出
def triangles(num): l = [] if num == 1: l = [1] yield l else: l = [1] yield l l = [1,1] yield l while len(l) &amp;amp;lt; num: n...
python.杨辉三角.生成器
*声明: 我写此文的目的是帮助和我一样在廖雪峰老师官网上学习Python3的同学更好的理解和学习Python的知识,所以本博文及后续文章会跟着我的学习进度来走,主要内容是廖雪峰老师官网Python资料中每节知识点后的复习题的答案和解析,有一些是我自己原创的,有一些是网上整理的大神写的简洁但对新手并不是很明了的答案,我会尽可能的给出我的解析。*题目 杨辉三角定义如下:
Python可迭代对象,迭代器,生成器的区别
本篇文章简单谈谈Python中可迭代对象,迭代器和生成器之间的关系。刚开始我认为这两者是等同的,但后来发现并不是这样;直接抛出结论: 可迭代对象包含迭代器。 如果一个对象拥有__iter__方法,其是可迭代对象;如果一个对象拥有next方法,其是迭代器。 定义可迭代对象,必须实现__iter__方法;定义迭代器,必须实现__iter__和next方法。 生成器是一种特殊的迭代器,生成器自动实现了“迭代器协议”(即__iter__和next方法),不需要手动实现两方法。 生成器在迭代的过程中可以改变当前迭代值
Python之生成器和一些重要的推导式
生成器 生成器的实质就是迭代器。 在Python中有三种方式来获取生成器: 1. 通过函数生成; 2. 通过各种推导公式来实现; 3. 通过数据转换获取。 接下来看这个实例: def func(): print(&quot;111&quot;) return 222 ret = func() print(ret) 结果: 111 222 Process finished...
Python 3.6 生成器之Send方法
之前一篇生成器讲了通过yield完成生成器的创建,并且通过next方法获取每一次yield的值。 这一篇讲一下yield的另一个方法,send def func1(): # 生成器函数 print("ok1") x = 10 # 函数内局部变量x赋值为10 print(x) x = yield 1 # 这里就是send函数的关键 # 之前我们创建的
机器学习-->python 数据生成器总结
我们在学习机器学习算法时,经常需要对比不同的算法在不同的数据集上表现好坏,需要有按照不同的需求来自定义的生成一些数据集。本篇博文将总结python里面一些用来数据生成的包。最简单的等差数据和等比数据# 如果生成一定规则的数据,可以使用NumPy提供的专门函数 # arange函数类似于python的range函数:指定起始值、终止值和步长来创建数组 # 和Python的range类似,arang
python生成器(generator)和列表生成式
https://www.cnblogs.com/jessonluo/p/4732565.html https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450083887673122b45a4414333ac366c3c935125e7000
Python生成器实现简单斐波那契数列
简单斐波那契数列 常见问题:兔子问题,青蛙跳台阶问题等等。 def fab(max): n, a, b = 0, 0, 1 while n &amp;lt; max: a, b = b, a+b yield b n += 1 测试: if __name__ == '__main__': for a in fab(10): ...
python学习笔记(五)--列表生成式、生成器(generator)、yield关键字
列表生成式 能够快速的生成一个list 配合 for 循环使用,for 循环 遍历出的结果 无需像如下方式生成 &amp;gt;&amp;gt;&amp;gt; for x in range(1,11): Li.append(x) &amp;gt;&amp;gt;&amp;gt; Li [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 而是用列表生成式让这个操作变得更为便捷 &amp;gt;&amp;gt;&amp;gt; [x f...
python_Day4:利用filter输出质数
def zhishu(num): for i in range(2,num): if num % i == 0: return False break return True l = list(filter(zhishu,range(2,100))) print(l)
【Python】使用生成器改写直接返回列表的函数
本文是《Effect Python 编写高质量Python代码的59个有效方法》的学习笔记。主要记录生成器的使用方法和示例代码。
Python生成器实现杨辉三角
在学习廖雪峰的python教程的时候,讲到生成器的时候,有一道练习是这样的: 练习 杨辉三角定义如下: 1 / \ 1 1 / \ / \ 1 2 1 / \ / \ / \ 1 3 3 1 / \ / \ / \ / \ 1 4 6 4 1 ...
python--生成器写斐波那契数列
最近刚学了一个python生成器,用生成器实现斐波那契数列 def fib(items):     n=0     a,b=0,1     while n&amp;lt;=items:            yield a             a,b=b,a+b             n+=1 num_str = input(&quot;请输入一个数:&quot;) num=int(num_str) ...
python3.0 -for循环 while 循环
names = ['Michael','Bob','Tracy']for name in names:print(name)i =10whilei &amp;gt;0:i -=1print(i)range(10):  0 - 10 的数组foriinrange(10):print(i)#输出直接三角形foriinrange(5):forjinrange(5):i...
【Python入门】6.生成器与迭代器 & 杨辉三角排列的生成
本学习笔记基于廖雪峰的Python教程。欢迎与博主一起学习Pythonヽ( ̄▽ ̄)ノ 本节内容包括:切片;迭代;列表生成器;生成器 generator;迭代器 iterator
python用生成器生成裴波那契数列
#_*_coding:utf-8_*_ def f():     a,b=1,1     while True:         yield a         a,b = b,a+b a = f() for i in range(10):     print(a.__next__(),end =   ' ') 1 1 2 3 5 8 13 21 34 55