คำถามติดแท็ก iteration

การวนซ้ำเป็นการทำซ้ำอย่างต่อเนื่องในลูปเช่น foreach หรือในขณะที่ คำถามที่มีแท็กนี้มักเกี่ยวข้องกับวิธีจัดการกับการรวบรวมข้อมูลได้ดีที่สุด

10
จะวนซ้ำ (คีย์, ค่า) ในจาวาสคริปต์ได้อย่างไร?
ฉันมีพจนานุกรมที่มีรูปแบบของ dictionary = {0: {object}, 1:{object}, 2:{object}} ฉันจะทำซ้ำผ่านพจนานุกรมนี้โดยทำสิ่งที่ชอบได้อย่างไร for((key,value) in dictionary){ //Do stuff where key would be 0 and value would be the object }

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
การเรียกซ้ำเป็นเร็วกว่าการวนซ้ำหรือไม่
ฉันรู้ว่าการเรียกซ้ำเป็นบางครั้งมากกว่าการวนซ้ำและฉันไม่ได้ถามอะไรเมื่อฉันควรใช้การเรียกซ้ำผ่านการทำซ้ำฉันรู้ว่ามีคำถามมากมายเกี่ยวกับเรื่องนั้นแล้ว สิ่งที่ฉันขอเป็นเป็น recursion เคยเร็วกว่าห่วง? สำหรับฉันแล้วดูเหมือนว่าคุณจะสามารถปรับแต่งลูปและทำให้มันทำงานได้เร็วกว่าฟังก์ชั่นวนซ้ำเพราะลูปไม่ได้ตั้งค่าเฟรมสแต็กใหม่อย่างต่อเนื่อง ฉันกำลังค้นหาว่าการเรียกซ้ำซ้ำเร็วกว่าในแอปพลิเคชันหรือไม่ซึ่งการเรียกซ้ำเป็นวิธีที่ถูกต้องในการจัดการข้อมูลเช่นในฟังก์ชันเรียงลำดับบางอย่างในต้นไม้ไบนารีเป็นต้น


3
generator.next () ปรากฏใน Python 3 หรือไม่
ฉันมีเครื่องกำเนิดไฟฟ้าที่สร้างซีรีส์เช่น: 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 …

10
วิธีการวนซ้ำในอาร์เรย์ใน jQuery?
ฉันพยายามที่จะวนรอบอาร์เรย์ ฉันมีรหัสต่อไปนี้: var currnt_image_list= '21,32,234,223'; var substr = currnt_image_list.split(','); // array here กำลังพยายามดึงข้อมูลทั้งหมดออกจากอาร์เรย์ ใครบางคนสามารถพาฉันไปในเส้นทางที่ถูกต้องได้ไหม

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เพื่อที่ฉันจะรู้ว่ามีกุญแจอะไรและมีคุณค่าอะไรบ้าง? ฉันรู้ว่ามีสิ่งที่เรียกว่าสำหรับในวงJavaScriptใน มีอะไรที่คล้ายกันObjective-Cไหม?

9
“ สำหรับ” กับ“ แต่ละ” ในทับทิม
ฉันเพิ่งมีคำถามอย่างรวดเร็วเกี่ยวกับลูปใน Ruby มีความแตกต่างระหว่างสองวิธีในการวนซ้ำผ่านคอลเลกชันหรือไม่? # way 1 @collection.each do |item| # do whatever end # way 2 for item in @collection # do whatever end เพียงแค่สงสัยว่าสิ่งเหล่านี้เหมือนกันหรืออาจจะมีความแตกต่างเล็กน้อย (อาจเป็นเมื่อ@collectionไม่มี)
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นำขึ้นคำถามที่น่าสนใจเห็นได้ชัดว่า: ฟังก์ชันเรียกซ้ำแบบหางสามารถแปลงเป็นฟังก์ชั่นวนซ้ำได้เล็กน้อย ส่วนอื่นสามารถเปลี่ยนได้โดยใช้สแต็กที่ชัดเจน การเรียกซ้ำทุกครั้งสามารถเปลี่ยนเป็นการวนซ้ำได้หรือไม่ ตัวอย่าง (ตัวนับ?) ในโพสต์คือคู่: (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 สิ่งนี้: 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 …

7
มีการรับประกันคำสั่งซื้อสำหรับการส่งคืนคีย์และค่าจากวัตถุ LinkedHashMap หรือไม่?
ฉันรู้ว่าLinkedHashMapมีคำสั่งวนซ้ำที่คาดการณ์ได้ (คำสั่งแทรก) การSetคืนสินค้าโดยLinkedHashMap.keySet()และการCollectionส่งคืนสินค้าLinkedHashMap.values()ยังรักษาคำสั่งซื้อนี้หรือไม่

8
ทำซ้ำมากกว่าคุณลักษณะของวัตถุในหลาม
ฉันมีวัตถุหลามที่มีคุณลักษณะและวิธีการหลายอย่าง ฉันต้องการวนซ้ำคุณลักษณะของวัตถุ class my_python_obj(object): attr1='a' attr2='b' attr3='c' def method1(self, etc, etc): #Statements ฉันต้องการสร้างพจนานุกรมที่มีคุณลักษณะของวัตถุทั้งหมดและค่าปัจจุบันของพวกเขา แต่ฉันต้องการที่จะทำมันในแบบไดนามิก (ดังนั้นถ้าภายหลังฉันเพิ่มคุณสมบัติอื่นที่ฉันไม่ต้องจำเพื่อปรับปรุงฟังก์ชั่นของฉันด้วย) ในตัวแปร php สามารถใช้เป็นกุญแจได้ แต่วัตถุในไพ ธ อนนั้นไม่สามารถอธิบายได้และถ้าฉันใช้เครื่องหมายจุดสำหรับสิ่งนี้มันจะสร้างแอททริบิวใหม่ที่มีชื่อ 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 …

6
Python แสดงรายการตัววนซ้ำและตัวถัดไป (ตัววนซ้ำ)
พิจารณา: >>> 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ควรล่วงหน้า iterator ครั้งเดียวแล้วโทรนัยทำโดยวงควรล่วงหน้าเป็นครั้งที่สอง - iและผลของการโทรที่สองนี้จะได้รับการมอบหมายให้ มันไม่ได้ ลูปจะพิมพ์รายการทั้งหมดในรายการโดยไม่ข้ามอะไรเลย ความคิดแรกของฉันคือว่าเรื่องนี้อาจจะเกิดขึ้นเพราะห่วงเรียกร้องiterในสิ่งที่มันจะผ่านไปและอาจให้ iterator อิสระ - iter(a) is aนี้ไม่ได้เป็นกรณีที่เรามี ดังนั้นทำไมnextไม่ปรากฏตัวเลื่อนซ้ำในกรณีนี้?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.