एकल सूची से जोड़े

| | | | | |

अक्सर, मुझे जोड़े द्वारा एक सूची को संसाधित करने की आवश्यकता मिली है। मैं सोच रहा था कि इसे करने का पाइथोनिक और कुशल तरीका कौन सा होगा, और इसे Google पर पाया:

 जोड़े = zip(t[::2], t[1::2]) 

मैंने सोचा था कि यह काफी पाइथोनिक था, लेकिन मुहावरे बनाम दक्षता, मैंने कुछ परीक्षण करने का फैसला किया:

 itertools से आयात समय islice, izip def जोड़े_1(t): वापसी ज़िप (t[::2], t[1::2]) def जोड़े_2(t): वापसी izip(t[::2], t[ 1::2]) def जोड़े_3(t): वापसी izip(islice(t,none,none,2), islice(t,1,None,2)) A = रेंज(10000) B = xrange(len(A) )) def जोड़े_4 (टी): # टी के मूल्य पर ध्यान न दें! टी = बी वापसी izip (islice (टी, कोई नहीं, कोई नहीं, 2), islice (टी, 1, कोई नहीं, 2)) जोड़े में f के लिए_1, जोड़े_2, जोड़े_3 , जोड़े_4: # समय जोड़ी s = time.time () के लिए i रेंज में (1000): p = f (A) t1 = time.time () - s # समय जोड़े का उपयोग करके s = time.time () के लिए मैं रंग में e(1000): p = f(A) a, b in p: पास t2 = time.time() - s प्रिंट t1, t2, t2-t1 

ये थे मेरे कंप्यूटर पर परिणाम:

1.48668909073 2.63187503815 1.14518594742 0.105381965637 1.35109519958 1.24571323395 0.00257992744446 1.46182489395 1.45924496651 0.00251388549805 1.70076990128 1.6 पायथन में सूचियों का कार्यान्वयन, सूची अनुक्रमण और सूची टुकड़ा करना बहुत कुशल है। इसका परिणाम सुखद और अप्रत्याशित दोनों होता है।

क्या सूची को जोड़ियों में पार करने का कोई और, "बेहतर" तरीका है?

ध्यान दें कि यदि सूची तत्वों की एक विषम संख्या है तो अंतिम किसी भी जोड़े में नहीं होगा।

यह सुनिश्चित करने का सही तरीका कौन सा होगा कि सभी तत्व शामिल हैं?

मैंने परीक्षणों के उत्तरों से इन दो सुझावों को जोड़ा:

def जोड़ीवार(t): it = iter(t) return izip(it, it) def chunkwise(t, size=2): it = iter(t) return izip(*[it]*size) 

ये परिणाम हैं:

0.00159502029419 1.25745987892 1.25586485863 0.00222492218018 1.23795199394 1.23572707176 

अब तक के नतीजे

सबसे पाइथोनिक और बहुत ही कुशल:

pairs = izip(t[::2] , t[1::2]) 

सबसे कुशल और बहुत पाइथोनिक:

जोड़े = izip(*[iter(t)]*2) 

मुझे यह समझने में एक पल लगा कि पहला उत्तर दो पुनरावृत्तियों का उपयोग करता है जबकि दूसरा उपयोग करता है एक एकल।

विषम संख्या में तत्वों के साथ अनुक्रमों से निपटने के लिए, एक तत्व (कोई नहीं) जोड़कर मूल अनुक्रम को बढ़ाने का सुझाव दिया गया है जो पिछले के साथ जोड़ा जाता है अंतिम तत्व, कुछ ऐसा जो itertools.izip_longest() से हासिल किया जा सकता है।

आखिर में

ध्यान दें कि, Python 3.x में, zip () itertools.izip() के रूप में व्यवहार करता है, और itertools.izip() चला गया है।

हमें उम्मीद है कि इस लेख ने समस्या को हल करने में आपकी मदद की है। एकल सूची से जोड़े के अलावा, अन्य exp-संबंधित विषयों की जाँच करें।

पायथन में उत्कृष्टता प्राप्त करना चाहते हैं? सर्वश्रेष्ठ पायथन ऑनलाइन पाठ्यक्रम 2022 की हमारी समीक्षा देखें। यदि आप डेटा विज्ञान में रुचि रखते हैं, तो यह भी देखें कि R में प्रोग्रामिंग कैसे सीखें

वैसे, यह सामग्री अन्य भाषाओं में भी उपलब्ध है:

<उल>
  • एकल सूची से जोड़े
  • Italiano एकल सूची से जोड़े
  • Deutsch एकल सूची से जोड़े
  • Français एकल सूची से जोड़े
  • Español एकल सूची से जोड़े
  • Türk एकल सूची से जोड़े
  • Русский एकल सूची से जोड़े
  • Português एकल सूची से जोड़े
  • Polski एकल सूची से जोड़े
  • Nederlandse एकल सूची से जोड़े
  • 中文 एकल सूची से जोड़े
  • 한국어 एकल सूची से जोड़े
  • 日本語 एकल सूची से जोड़े
  • हिन्दी एकल सूची से जोड़े


  • Javier Zelotti

    Abu Dhabi | 2022-11-29

    mean सब कुछ थोड़ा भ्रमित कर रहा है 😭 एकल सूची से जोड़े एकमात्र समस्या नहीं है जिसका मुझे सामना करना पड़ा. कल चेक किया गया, यह काम करता है!

    Schneider Chamberlet

    Vigrinia | 2022-11-29

    समझाने के लिए धन्यवाद! मैं कुछ घंटों के लिए एकल सूची से जोड़े के साथ फंस गया था, आखिरकार इसे पूरा कर लिया. प्रतिक्रिया के साथ कल वापस आऊंगा

    Olivia Galleotti

    Boston | 2022-11-29

    समझाने के लिए धन्यवाद! मैं कुछ घंटों के लिए एकल सूची से जोड़े के साथ फंस गया था, आखिरकार इसे पूरा कर लिया. मुझे उम्मीद है कि यह अब और नहीं उभरेगा

    Shop

    Learn programming in R: courses

    $

    Best Python online courses for 2022

    $

    Best laptop for Fortnite

    $

    Best laptop for Excel

    $

    Best laptop for Solidworks

    $

    Best laptop for Roblox

    $

    Best computer for crypto mining

    $

    Best laptop for Sims 4

    $

    Latest questions

    NUMPYNUMPY

    Common xlabel/ylabel for matplotlib subplots

    12 answers

    NUMPYNUMPY

    How to specify multiple return types using type-hints

    12 answers

    NUMPYNUMPY

    Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

    12 answers

    NUMPYNUMPY

    Flake8: Ignore specific warning for entire file

    12 answers

    NUMPYNUMPY

    glob exclude pattern

    12 answers

    NUMPYNUMPY

    How to avoid HTTP error 429 (Too Many Requests) python

    12 answers

    NUMPYNUMPY

    Python CSV error: line contains NULL byte

    12 answers

    NUMPYNUMPY

    csv.Error: iterator should return strings, not bytes

    12 answers


    Wiki

    Python | How to copy data from one Excel sheet to another

    Common xlabel/ylabel for matplotlib subplots

    Check if one list is a subset of another in Python

    sin

    How to specify multiple return types using type-hints

    exp

    Printing words vertically in Python

    exp

    Python Extract words from a given string

    Cyclic redundancy check in Python

    Finding mean, median, mode in Python without libraries

    cos

    Python add suffix / add prefix to strings in a list

    Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

    Python - Move item to the end of the list

    Python - Print list vertically