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

iterator เป็นรูปแบบการเขียนโปรแกรมเชิงวัตถุที่ช่วยให้การแวะผ่านคอลเลกชันไม่เชื่อเรื่องการใช้งานจริงหรือวัตถุที่อยู่ในหน่วยความจำกายภาพ มันเป็นหนึ่งในรูปแบบการออกแบบเชิงพฤติกรรมของ Gang of Four

14
วิธีที่สะอาดที่สุดในการรับรายการสุดท้ายจาก Python iterator
วิธีที่ดีที่สุดในการรับรายการสุดท้ายจากตัววนซ้ำใน Python 2.6 คืออะไร? ตัวอย่างเช่นพูดว่า my_iter = iter(range(5)) เป็นระยะเวลาที่สั้นรหัส / วิธีที่สะอาดในการได้รับอะไร4จากmy_iter? ฉันทำได้ แต่ดูเหมือนไม่ค่อยมีประสิทธิภาพ: [x for x in my_iter][-1]

12
ถ้า (items! = null) ฟุ่มเฟือยก่อน foreach (รายการ T ในรายการ)?
ฉันมักจะเจอรหัสดังต่อไปนี้: if ( items != null) { foreach(T item in items) { //... } } โดยทั่วไปifเงื่อนไขจะทำให้แน่ใจว่าforeachบล็อกจะดำเนินการต่อเมื่อitemsไม่เป็นโมฆะ ฉันสงสัยว่าifเงื่อนไขนั้นจำเป็นจริงๆหรือforeachจะจัดการกับกรณีนี้หรือitems == nullไม่ ฉันหมายความว่าฉันสามารถเขียน foreach(T item in items) { //... } โดยไม่ต้องกังวลว่าจะitemsเป็นโมฆะหรือไม่? เป็นifฟุ่มเฟือยสภาพ? หรือขึ้นอยู่กับประเภทของitemsหรืออาจจะTด้วย?


7
ตัววนซ้ำรายการแบบวงกลมใน Python
ฉันจำเป็นต้องวนซ้ำรายการแบบวงกลมอาจจะหลาย ๆ ครั้งทุกครั้งที่เริ่มต้นด้วยรายการที่เยี่ยมชมล่าสุด กรณีการใช้งานคือพูลการเชื่อมต่อ ไคลเอนต์ขอการเชื่อมต่อตัววนซ้ำจะตรวจสอบว่ามีการเชื่อมต่อแบบชี้ไปที่พร้อมใช้งานหรือไม่และส่งคืนหรือไม่เช่นนั้นจะวนซ้ำจนกว่าจะพบการเชื่อมต่อที่พร้อมใช้งาน มีวิธีทำใน Python อย่างเรียบร้อยหรือไม่?
106 python  list  iterator 

5
จะนำทางผ่านเวกเตอร์โดยใช้ตัววนซ้ำได้อย่างไร (C ++)
เป้าหมายคือการเข้าถึงองค์ประกอบ "ที่ n" ของเวกเตอร์ของสตริงแทนตัวดำเนินการ [] หรือเมธอด "at" จากสิ่งที่ฉันเข้าใจตัวทำซ้ำสามารถใช้เพื่อนำทางผ่านคอนเทนเนอร์ได้ แต่ฉันไม่เคยใช้ตัวทำซ้ำมาก่อนและสิ่งที่ฉันกำลังอ่านอยู่ก็ทำให้สับสน หากใครสามารถให้ข้อมูลเกี่ยวกับวิธีบรรลุเป้าหมายนี้ได้ฉันจะขอบคุณ ขอบคุณ.
105 c++  iterator  vector 

9
ซับเดียวเพื่อตรวจสอบว่าตัววนซ้ำให้องค์ประกอบอย่างน้อยหนึ่งองค์ประกอบหรือไม่?
ตอนนี้ฉันกำลังทำสิ่งนี้: try: something = iterator.next() # ... except StopIteration: # ... แต่ฉันต้องการนิพจน์ที่ฉันสามารถวางไว้ในifประโยคง่ายๆ มีอะไรในตัวที่จะทำให้โค้ดนี้ดูเงอะงะน้อยลงหรือไม่? any()จะส่งคืนFalseหากสามารถทำซ้ำได้ว่างเปล่า แต่อาจทำซ้ำได้ทุกรายการหากไม่มี ฉันต้องการเพียงแค่ตรวจสอบรายการแรกเท่านั้น มีคนถามว่าฉันพยายามทำอะไร ฉันได้เขียนฟังก์ชันที่เรียกใช้แบบสอบถาม SQL และให้ผลลัพธ์ บางครั้งเมื่อฉันเรียกใช้ฟังก์ชันนี้ฉันแค่อยากรู้ว่าแบบสอบถามส่งคืนอะไรหรือไม่และตัดสินใจตามนั้น
105 python  iterator 

6
เราสามารถเขียน iterator ของเราเองใน Java ได้หรือไม่?
ถ้าฉันมีรายการที่มี[alice, bob, abigail, charlie]และฉันต้องการเขียนตัววนซ้ำเพื่อให้มันวนซ้ำองค์ประกอบที่ขึ้นต้นด้วย 'a' ฉันสามารถเขียนของตัวเองได้หรือไม่ ฉันจะทำเช่นนั้นได้อย่างไร?
104 java  iterator 


8
ArrayIndexOutOfBoundsException เมื่อใช้ตัววนซ้ำของ ArrayList
ตอนนี้ฉันมีโปรแกรมที่มีโค้ดที่มีลักษณะดังนี้: while (arrayList.iterator().hasNext()) { //value is equal to a String value if( arrayList.iterator().next().equals(value)) { // do something } } ฉันทำถูกต้องไหมเท่าที่ทำซ้ำผ่าน ArrayList ไป ข้อผิดพลาดที่ฉันได้รับคือ: java.lang.ArrayIndexOutOfBoundsException: -1 at java.util.ArrayList.get(Unknown Source) at main1.endElement(main1.java:244) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown …


12
การทำซ้ำเวกเตอร์ C ++ จากจุดสิ้นสุดถึงจุดเริ่มต้น
เป็นไปได้ไหมที่จะวนซ้ำเวกเตอร์จากจุดเริ่มต้นจนถึงจุดเริ่มต้น for (vector<my_class>::iterator i = my_vector.end(); i != my_vector.begin(); /* ?! */ ) { } หรือเป็นไปได้เฉพาะกับสิ่งที่ต้องการ: for (int i = my_vector.size() - 1; i >= 0; --i) { }
101 c++  vector  iterator 

9
วิธีที่ดีที่สุดในการนับจำนวน / ความยาว / ขนาดของตัววนซ้ำคืออะไร?
มีวิธีที่รวดเร็วในการนับจำนวนตัววนซ้ำหรือไม่? int i = 0; for ( ; some_iterator.hasNext() ; ++i ) some_iterator.next(); ... ดูเหมือนจะเสียรอบการทำงานของ CPU
100 java  iterator 

2
อัปเดตค่าแถวที่ตรงตามเงื่อนไขในแพนด้า
สมมติว่าฉันมี dataframe ต่อไปนี้: เป็นวิธีที่มีประสิทธิภาพมากที่สุดในการปรับปรุงค่าของคอลัมน์อะไรสำเร็จและanother_featที่สตรีมเป็นจำนวน2 ? นี่มัน? for index, row in df.iterrows(): if df1.loc[index,'stream'] == 2: # do something UPDATE: จะทำอย่างไรถ้าฉันมีมากกว่า 100 คอลัมน์? ฉันไม่ต้องการตั้งชื่อคอลัมน์ที่ต้องการอัปเดตอย่างชัดเจน ฉันต้องการหารค่าของแต่ละคอลัมน์ด้วย 2 (ยกเว้นคอลัมน์สตรีม) เพื่อให้ชัดเจนว่าเป้าหมายของฉันคืออะไร: หารค่าทั้งหมดด้วย 2 แถวทั้งหมดที่มีสตรีม 2 แต่ไม่เปลี่ยนคอลัมน์สตรีม


7
จะอ่านข้อมูล csv หนึ่งบรรทัดใน Python ได้อย่างไร
มีตัวอย่างมากมายของการอ่านข้อมูล csv โดยใช้ python เช่นนี้: import csv with open('some.csv', newline='') as f: reader = csv.reader(f) for row in reader: print(row) ฉันต้องการอ่านข้อมูลเพียงบรรทัดเดียวและป้อนข้อมูลลงในตัวแปรต่างๆ ฉันจะทำอย่างไร? ฉันได้ดูตัวอย่างการทำงานทุกที่แล้ว รหัสของฉันดึงค่าสำหรับ i เท่านั้นและไม่มีค่าอื่น ๆ reader = csv.reader(csvfile, delimiter=',', quotechar='"') for row in reader: i = int(row[0]) a1 = int(row[1]) b1 = int(row[2]) c1 = int(row[2]) x1 = …
94 python  file  csv  iterator  next 

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