Tag: 迭代

在Python中迭代对象的属性

我有一个python对象有几个属性和方法。 我想迭代对象的属性。 class my_python_obj(object): attr1='a' attr2='b' attr3='c' def method1(self, etc, etc): #Statements 我想生成一个包含所有对象属性及其当前值的字典,但我想以dynamic的方式来做(所以如果以后我添加另一个属性,我不必记得更新我的函数)。 在PHPvariables可以用作键,但python中的对象是unsuscriptable,如果我使用点符号为此它创build一个新的属性与我的变种的名称,这不是我的意图。 只是为了使事情更清楚: 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 d 更新:有了属性,我的意思是只有这个对象的variables,而不是方法。

recursion与迭代

是否正确地说,无处不在recursion使用for循环可以使用? 如果recursion通常比较慢,那么循环迭代使用它的技术原因是什么? 如果总是有可能将recursion转换为for循环,那么有一种经验法则可以做到这一点?

迭代器和迭代器有什么区别,以及如何使用它们?

我是新来的Java,我真的很困惑迭代器和迭代。 任何人都可以解释给我一些例子吗?

迭代一个string

在C ++中,我可以这样做: for (int i = 0; i < str.length(); ++i) std::cout << str[i] << std::endl; 我如何迭代Python中的string?

std ::队列迭代

我需要遍历std::queue 。 www.cplusplus.com说: 默认情况下,如果没有为特定的队列类指定容器类,则使用标准容器类模板deque。 那么我能以某种方式进入队列的底层deque并迭代它吗?

所有的迭代algorithm都可以recursion表示吗?

如果没有,是否有一个很好的反例,显示一个迭代algorithm,其中不存在recursion对应? 如果所有迭代algorithm都可以recursion表示,那么这种情况是否更难? 另外,编程语言在这一切中扮演着什么angular色? 我可以想象,Scheme程序员对于迭代(=尾recursion)和堆栈使用有不同的看法,而不是只用Java的程序员。

是否保证从LinkedHashMap对象返回键和值的顺序?

我知道LinkedHashMap有一个可预测的迭代顺序(插入顺序)。 LinkedHashMap.keySet()返回的Set和LinkedHashMap.keySet()返回的Collection是否也维护这个顺序?

multidimensional array迭代

假设你有以下数组: $nodes = array( "parent node", "parent node", array( "child node", "child node", array( "grand child node", "grand child node"))); 你将如何将其转换为XMLstring,使其看起来像: <node> <node>parent node</node> <node>parent node</node> <node> <node>child node</node> <node>child node</node> <node> <node>grand child node</node> <node>grand child node</node> </node> </node> </node> 一种方法可以通过recursion方法来实现: function traverse($nodes) { echo "<node>"; foreach($nodes as $node) { if(is_array($node)) { traverse($node); } […]

如何迭代C#中的匿名对象的属性?

我想将一个匿名对象作为parameter passing给一个方法,然后遍历它的属性来将每个属性/值添加到一个dynamic的ExpandoObject 。 所以我需要的是离开 new { Prop1 = "first value", Prop2 = SomeObjectInstance, Prop3 = 1234 } 知道每个属性的名称和值,并能够将它们添加到ExpandoObject 。 我如何做到这一点? 附注:这将在我的许多unit testing中完成(我正在使用它来重构设置中的很多垃圾),所以性能在一定程度上是相关的。 我对reflection的确切知之甚less,但是从我所了解的情况来看,它的performance很重,所以如果可能的话,我宁愿避免它。 后续问题:正如我所说的,我将这个匿名对象作为方法的参数。 我应该在方法的签名中使用哪种数据types? 如果我使用object所有的属性都可用吗?

“for”和“Ruby”中的“each”

我刚刚有一个关于Ruby中的循环的问题。 这两种迭代方式是否有区别? # way 1 @collection.each do |item| # do whatever end # way 2 for item in @collection # do whatever end 只是想知道如果这些是完全一样的,或者如果可能有一个微妙的差异(可能当@collection是零)。