Questions tagged «iteration»

迭代是循环中的连续重复,例如for,foreach或while。带有此标签的问题通常与如何最好地处理数据集合有关。


9
如何遍历C ++地图?
如何std::map在C ++中循环浏览?我的地图定义为: std::map< std::string, std::map<std::string, std::string> > 例如,上述容器保存如下数据: m["name1"]["value1"] = "data1"; m["name1"]["value2"] = "data2"; m["name2"]["value1"] = "data1"; m["name2"]["value2"] = "data2"; m["name3"]["value1"] = "data1"; m["name3"]["value2"] = "data2"; 如何遍历此映射并访问各种值?

12
递归比循环快吗?
我知道递归有时比循环要干净得多,并且我什么时候不应该在迭代中使用递归就没有任何疑问,我知道已经有很多问题了。 我要问的是,递归是否比循环快?在我看来,与循环函数相比,您总是能够完善一个循环并使其执行得更快,因为没有循环不断地建立新的堆栈框架。 我专门在寻找在应用程序中正确使用递归的应用程序中递归是否更快,例如某些排序函数,二进制树等。


3
在Python 3中是否可以看到generator.next()?
我有一个生成序列的生成器,例如: def triangle_nums(): '''Generates a series of triangle numbers''' tn = 0 counter = 1 while True: tn += counter yield tn counter += + 1 在Python 2中,我可以进行以下调用: g = triangle_nums() # get the generator g.next() # get the next value 但是在Python 3中,如果我执行相同的两行代码,则会出现以下错误: AttributeError: 'generator' object has no attribute 'next' …


8
迭代时从集合中删除元素
AFAIK有两种方法: 遍历集合的副本 使用实际集合的迭代器 例如, List<Foo> fooListCopy = new ArrayList<Foo>(fooList); for(Foo foo : fooListCopy){ // modify actual fooList } 和 Iterator<Foo> itr = fooList.iterator(); while(itr.hasNext()){ // modify actual fooList using itr.remove() } 是否有任何理由倾向于一种方法而不是另一种方法(例如,出于可读性的简单原因而倾向于第一种方法)?

3
有没有办法遍历字典?
我知道NSDictionaries您需要一个key才能得到一个东西value。但是,如何遍历keys并values在中进行遍历NSDictionary,以使我知道其中有哪些键,以及有哪些值?我知道在中有一个叫做for-in-loop的东西JavaScript。有类似的东西Objective-C吗?

9
Ruby中的“ for”与“ each”
我只是对Ruby中的循环有一个简单的问题。这两种遍历集合的方式之间有区别吗? # way 1 @collection.each do |item| # do whatever end # way 2 for item in @collection # do whatever end 只是想知道它们是否完全相同,或者是否存在细微的差异(可能@collection是nil时)。
200 ruby  loops  foreach  iteration  each 

15
如何遍历包含对象的数组并访问其属性
我想遍历数组中包含的对象并更改每个对象的属性。如果我这样做: for (var j = 0; j < myArray.length; j++){ console.log(myArray[j]); } 控制台应该调出数组中的每个对象,对吗?但实际上,它仅显示第一个对象。如果我在循环外控制台记录阵列,则所有对象都会出现,因此肯定还有更多对象。 无论如何,这是下一个问题。如何使用循环访问数组中的Object1.x? for (var j = 0; j < myArray.length; j++){ console.log(myArray[j.x]); } 这将返回“未定义”。循环外的控制台日志再次告诉我,所有对象都具有“ x”的值。如何在循环中访问这些属性? 建议我在其他地方为每个属性使用单独的数组,但是我想确保首先使用此方法。 谢谢!

17
可以将每个递归转换为迭代吗?
一个reddit线程提出了一个看似有趣的问题: 尾递归函数可以简单地转换为迭代函数。其他的可以通过使用显式堆栈进行转换。可以将每个递归转换成迭代吗? 帖子中的(counter?)示例是一对: (define (num-ways x y) (case ((= x 0) 1) ((= y 0) 1) (num-ways2 x y) )) (define (num-ways2 x y) (+ (num-ways (- x 1) y) (num-ways x (- y 1))

8
遍历字符串中所有字符的最快方法
在Java中,迭代字符串中所有字符的最快方法是: String str = "a really, really long string"; for (int i = 0, n = str.length(); i < n; i++) { char c = str.charAt(i); } 或这个: char[] chars = str.toCharArray(); for (int i = 0, n = chars.length; i < n; i++) { char c = chars[i]; } …


8
遍历python中的对象属性
我有一个带有几个属性和方法的python对象。我想遍历对象属性。 class my_python_obj(object): attr1='a' attr2='b' attr3='c' def method1(self, etc, etc): #Statements 我想生成一个包含所有对象属性及其当前值的字典,但是我想以一种动态的方式进行操作(因此,如果以后添加另一个属性,我也不必记住要更新我的函数)。 在php中,变量可以用作键,但是python中的对象是不可写的,如果我为此使用点符号,则会创建一个新属性,其名称为var,这不是我的意图。 为了使事情更清楚: def to_dict(self): '''this is what I already have''' d={} d["attr1"]= self.attr1 d["attr2"]= self.attr2 d["attr3"]= self.attr3 return d · def to_dict(self): '''this is what I want to do''' d={} for v in my_python_obj.attributes: d[v] = self.v return …

6
Python列表迭代器行为和next(iterator)
考虑: >>> lst = iter([1,2,3]) >>> next(lst) 1 >>> next(lst) 2 因此,按预期方式,通过更改同一对象来处理迭代器。 在这种情况下,我希望: a = iter(list(range(10))) for i in a: print(i) next(a) 跳过每第二个元素:对的调用next应使迭代器前进一次,然后循环进行的隐式调用应使它第二次前进-并将第二次调用的结果分配给i。 没有。该循环将打印列表中的所有项目,而不会跳过任何项目。 我的第一个想法是,可能会发生这种情况,因为循环会调用iter它所传递的内容,并且这可能会提供一个独立的迭代器-事实并非如此iter(a) is a。 那么,为什么next在这种情况下似乎不推进迭代器呢?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.