【搞懂python中的可迭代对象和迭代器对象(即迭代器)】教程文章相关的互联网学习教程文章

Python:如何将生成器迭代值附加到列表【代码】

我有一个简单的生成器,可以给我一组坐标的排列.我希望使用以下代码将每个新置换保存到数组中的元素:import random def poss_comb(coord):spin=random.shuffleif spin:spin(coord)yield (coord) ...a=[] for n in xrange(0,10):for item in poss_comb(coord):print itema.append(item)但是,当打印结果时,打印项目会给我我想要的东西:['0 1', '', '1 2', '1 3'] ['0 1', '', '1 2', '1 3'] ['1 2', '0 1', '1 3', ''] ['0 1', '1 2...

Python迭代器

迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()。 字符串,列表或元组对象都可用于创建迭代器:实例(Python 3.0+) >>>?list=[1,2,3,4]>>>?it?=?iter(list)?? ?# 创建迭代器对象>>>?print?(next(it))???# 输出迭代器的下一个元素...

python-如何迭代一个numpy数组并选择相邻的单元格【代码】

我正在将USGS高程栅格数据集转换为Numpy数组,然后尝试随机选择数组中的位置.从这个位置,我想创建一种方法来识别周围的八个单元,以查看这些单元的高度是否在随机选择的单元的一米以内. 在这里它变得更加复杂…如果邻居在一米之内,则将调用相同的方法,然后重复该过程,直到一米以内不再有像元或所选像元的数量达到规定的限制. 如果不清楚,希望下面的2d数组示例更有意义.随机选择粗体/斜体单元格(35),在其上调用该方法(选择其所有八个邻...

python-在此示例中,避免使用迭代的好方法是什么?【代码】

我讨论了previously的性能问题,并获得了良好的总体答复.这个问题是一个特殊的情况,在此情况下,我希望您能帮助您更好地应用某些东西,因为它的进度很慢. 我相信这个问题对于任何想以行迭代方式思考的新python / pandas程序员都是有用的. 我使用“ map”或“ apply”看到的示例通常显示一个似乎很直观的数据表.但是,我正在两个表之间工作,它们很大(T1是250万行,T2是96000行). 这是一个简单的示例(在我的会话中有效):import pandas as...

python-无论长度如何,Pandas Dataframe上最干净的迭代/功能应用程序【代码】

我一直在努力干净地迭代或将函数应用于可变长度的Pandas DataFrame.具体来说,长度为1的DataFrame slice(Pandas系列). 一个简单的例子,一个DataFrame和一个作用于它的每一行的函数.数据帧的格式是已知/预期的.def stringify(row):return "-".join([row["y"], str(row["x"]), str(row["z"])])df = pd.DataFrame(dict(x=[1,2,3],y=["foo","bar","bro"],z=[-99,1.04,213])) Out[600]:x y z 0 1 foo -99.00 1 2 bar 1....

python-Gensim LDA-默认迭代次数【代码】

我想知道gensim的LDA(潜在Dirichlet分配)算法中的默认迭代次数.我认为文档中没有讨论这一点. (迭代次数由初始化LdaModel时的参数迭代表示).谢谢 !解决方法:在python / Lib / site-packages目录中检查了模块的文件.构造函数是这样的-def __init__(self, corpus=None, num_topics=100, id2word=None,distributed=False, chunksize=2000, passes=1, update_every=1,alpha='symmetric', eta=None, decay=0.5, offset=1.0,eval_every=1...

OpenCV Python:将任意函数应用于每个像素而无需迭代【代码】

在opencv和python中,有没有办法在利用numpy的优化的同时将任意函数应用于图像中的每个像素? 例如,我想获得单通道图像的S形:out_image[:,:] = 1 / (1 + math.exp(-in_img[:,:]))但这不起作用(不足为奇):TypeError:只能将length-1数组转换为Python标量. 有办法哄numpy做这样的事情吗? 我当然可以遍历像素,这在C中可能很好,但是在python中它非常慢.解决方法:正如@Divakar所建议的那样,用仅了解标量的math.exp替换为也了解ndarray...

如何使用SWIG从Python使C类可迭代?【代码】

我有一个管理std :: vector< Element> (班级的私人成员). 从C语言中,我可以使用begin()和end()迭代器(它们只是向量的迭代器的typedef)来遍历向量:Collection col; for (Collection::const_iterator itr = col.begin(); itr != col.end(); itr++) {std::cout << itr->get() << std::endl; }现在,我希望从Python做类似的事情:import example el = example.Element() el.set(5) col = example.Collection() col.add(el) for e in co...

Python 生成器 (generator) & 迭代器 (iterator)

python 生成器 & 迭代器 生成器 (generator) 列表生成式 列表生成式用来生成一个列表,虽然写的是表达式,但是储存的是计算出来的结果,因此生成的列表受到内存大小的限制 示例: a = [x ** 2 for x in range(5)] print(a) 输出结果: [0, 1, 4, 9, 16] 生成器 (generator) 生成器同样可以用来生成一个列表,但是生成器保存的是算法,在每一次调用 next 时才会计算出结果,因此生成的列表不会受到内存大小的限制 示例: a = (x ** ...

在Python 3.6中添加迭代时重复元素【代码】

我正在尝试编写一部分代码,该代码从两个不同的列表中获取元素并进行匹配,如下所示,但是由于某种原因,我一直在输出列表中重复获取元素.def assign_tasks(operators, requests, current_time):"""Assign operators to pending requests.Requires:- operators, a collection of operators, structured as the output of filesReading.read_operators_file;- requests, a list of requests, structured as the output of filesReading....

python-TypeError:’Figure’对象不可迭代(itertools)【代码】

import itertoolsaxs = plt.subplots(nrows=3, ncols=3, figsize=(15,15))axs_list = list(itertools.chain.from_iterable(axs)) for ax in axs_list:ax.plot(gen_stock_price_array2())当我使用itertools.chain.from_iterable时,出现类型错误.我已经搜索过Google,但是找不到答案.我想知道其他人是否可能有相同的问题,对我来说,这有点奇怪. 键入错误图片:解决方法:plt.subplots(nrows = 3,ncols = 3,figsize =(15,15))返回一个2元...

python(迭代)第十一节【代码】

通过for ... in循环来遍历ist、tuple、dict、字符串,这种遍历我们称为迭代(Iteration)。 (一)、迭代 代码:for s in 你好疯子:print(s,end= )结果:你 好 疯 子 (二)判断对象是否可迭代Iterable(可迭代对象) 代码:from collections import Iterableprint(isinstance(abc, Iterable)) # str是否可迭代print(isinstance([1, 2, 3], Iterable)) # list是否可迭代print(isinstance(123, Iterable)) # 整数是否可迭代结果:...

在目录内迭代以使用python压缩文件【代码】

我需要遍历一个文件夹,并找到文件名相同(扩展名除外)的每个实例,然后将每个文件名压缩(最好使用tarfile)到一个文件中. 因此,我有5个文件名为:“ example1”,每个文件具有不同的文件扩展名.我需要将它们拉在一起并将其输出为“ example1.tar”或类似内容. 通过简单的for循环,这将很容易,例如:tar = tarfile.open(‘example1.tar’,”w”)for output in glob (‘example1*’):tar.add(output)tar.close() 但是,有300个“示例...

python-对象不可迭代,但可迭代【代码】

>>> carls = [c.source.out_crushes.all().select_related().values_list('target') for c in similar_crushes] >>> [carlid for carlid in c for c in carls] Traceback (most recent call last):File "<console>", line 1, in <module> TypeError: 'Crush' object is not iterable >>> for c in carls: ... pass ... >>> [carlid for carlid in c for c in carls] [(1,), (1,), (3,), (3,)]抱歉,您的问题标题很糟糕,但我不知道...

python-ForLoop迭代作为Django模板中的列表索引【代码】

我正在构建一个django网页,但似乎遇到了障碍,因为我无法真正弄清楚如何将for循环的当前迭代(在模板中)用于多个列表:{% for num in loopRange %}<tr>{% for num2 in subRange %}<td>{% cycle list1 list2 list3 list4 %}</td>{% endfor %}</tr>{% endfor %}我在这里发现了两个类似的问题,我尝试使用循环,但是可惜这只是导致列表中的所有成员每次都被打印出来-并非完全出乎意料,但我无法弄清楚自己的一生. 我所拥有的是多个内容相似...