दिलचस्प पोस्ट
इकाई फ़्रेमवर्क कोड प्रथम AddOrUpdate विधि डुप्लिकेट मान डालें MySQL डाइक्रोट्रिक असंवेदनशील खोज (स्पेनिश उच्चारण) शब्दकोश कुंजी में स्विचेस से ऐरे बिलाव सर्वर / क्लाइंट स्व-हस्ताक्षरित SSL प्रमाणपत्र java: एक वर्ग में सभी चर नाम प्राप्त करें डॉकर्स की प्रक्रिया से आप कैसे संलग्न और अलग करते हैं? ज्ञात ईमेल पते से फेसबुक उपयोगकर्ता (प्रोफ़ाइल पृष्ठ पर यूआरएल) ढूंढें कैसे एक बाइट से MimeType निकालें कैसे मौजूदा बफर या फ़ाइल में पूर्व आदेश आउटपुट पुनर्निर्देशित करने के लिए? मुख्य () पोर्टेबल के लिए तीसरे तर्क के रूप में चार * envp है H264 के लिए MediaExtractor बिना MediaCodec का उपयोग कैसे करें Django: मॉडल क्षेत्रों की सूची प्राप्त करें? पुनरावर्ती समारोह के कारण ढेर अतिप्रवाह जावास्क्रिप्ट में मैं एक फ्लोट नंबर को पूरी संख्या में कैसे बदलूं? Laravel स्थापना: अपने पाथ में ~ / .composer / विक्रेता / बिन निर्देशिका को कैसे रखें?

समानांतर में दो सूचियों के माध्यम से कैसे पुनरावृत्त करें?

मेरे पास पायथन में दो इटेरैबल्स हैं, और मैं उन पर जोड़े में जाना चाहता हूं:

foo = (1, 2, 3) bar = (4, 5, 6) for (f, b) in some_iterator(foo, bar): print "f: ", f, "; b: ", b 

इसका परिणाम निम्न में होना चाहिए:

 f: 1; b: 4 f: 2; b: 5 f: 3; b: 6 

ऐसा करने का एक तरीका यह है कि इंडेक्स पर पुनरावृति करना है:

 for i in xrange(len(foo)): print "f: ", foo[i], "; b: ", b[i] 

लेकिन यह मेरे लिए कुछ अनपेक्षित लगता है इसे करने का कोई बेहतर तरीका है?

Solutions Collecting From Web of "समानांतर में दो सूचियों के माध्यम से कैसे पुनरावृत्त करें?"

 for f, b in zip(foo, bar): print(f, b) 

जब foo या bar बंद हो जाता है की कम हो तो zip बंद हो जाता है

पायथन 2 में , zip ट्यूपल्स की एक सूची देता है। यह ठीक है जब foo और bar बड़े पैमाने पर नहीं हैं यदि वे दोनों बड़े होते हैं तो zip(foo,bar) बनना एक अनावश्यक रूप से भारी अस्थायी चर है, और इसे itertools.izip या itertools.izip_longest द्वारा प्रतिस्थापित किया जाना चाहिए, जो एक सूची के बजाय इटरेटर देता है।

 import itertools for f,b in itertools.izip(foo,bar): print(f,b) for f,b in itertools.izip_longest(foo,bar): print(f,b) 

izip रोकता है जब या तो foo या bar समाप्त हो रहा है izip_longest बंद हो जाता है जब दोनों foo और bar समाप्त हो रहे हैं जब छोटे इटरेटर थके हुए होते हैं, तो izip_longest अनुरूप स्थिति में किसी के साथ ट्यूपल उत्पन्न करता है। यदि आप चाहें तो None इसके अलावा आप एक अलग fillvalue भी सेट कर सकते हैं पूरी कहानी के लिए यहां देखें

पायथन 3 में , zip itertools.izip एक इटरेटर देता है, जैसे itertools.izip में itertools.izip। ट्यूपल्स की सूची प्राप्त करने के लिए, सूची का उपयोग करें list(zip(foo, bar)) । और जब तक दोनों iterators थक नहीं रहे हैं ज़िप करने के लिए, आप itertools.zip_longest का उपयोग करेंगे ।


यह भी ध्यान रखें कि zip और इसका zip -प्रकार के ब्रेस्टियन तर्क के रूप में एक मनमाना संख्या को स्वीकार कर सकते हैं। उदाहरण के लिए,

 for num, cheese, color in zip([1,2,3], ['manchego', 'stilton', 'brie'], ['red', 'blue', 'green']): print('{} {} {}'.format(num, color, cheese)) 

प्रिंट

 1 red manchego 2 blue stilton 3 green brie 

आप zip फंक्शन चाहते हैं।

 for (f,b) in zip(foo, bar): print "f: ", f ,"; b: ", b 

बिल्टिन zip आप वास्तव में क्या चाहता है। यदि आप सूचियों के बजाय वेटरब से अधिक चाहते हैं तो आप इसे itertools.izip पर देख सकते हैं जो एक ही बात करता है लेकिन परिणाम एक समय पर देता है।

आप जो खोज रहे हैं उसे zip कहा जाता है

आपको ' ज़िप ' फ़ंक्शन का उपयोग करना चाहिए। यहां एक उदाहरण है कि आपका अपना ज़िप फ़ंक्शन कैसा दिख सकता है

 def custom_zip(seq1, seq2): it1 = iter(seq1) it2 = iter(seq2) while True: yield next(it1), next(it2) 

ज़िप फ़ंक्शन समस्या को हल करता है
डॉक्स: ज़िप लाइब्रेरी फ़ंक्शन

AIM: पक्ष की ओर से आउटपुट पक्ष डाल करने के लिए समस्या:

 #value1 is a list value1 = driver.find_elements_by_class_name("review-text") #value2 is a list value2 = driver.find_elements_by_class_name("review-date") for val1 in value1: print(val1.text) print "\n" for val2 in value2: print(val2.text) print "\n" 

आउटपुट:
review1
review2
review3
DATE1
DATE2
DATE3

उपाय:

 for val1, val2 in zip(value1,value2): print (val1.text+':'+val2.text) print "\n" 

आउटपुट:
review1: DATE1
review2: DATE2
review3: DATE3