How to clone or copy a set in Python? -


एक सूची की प्रतिलिपि बनाने के लिए: shallow_copy_of_list = old_list [:]

एक डिक्ट्री की प्रतिलिपि बनाने के लिए: isow_copy_of_dict = dict (old_dict)

लेकिन एक सेट के लिए, मैं चिंतित था कि ऐसा कोई भी काम नहीं करेगा, क्योंकि new_set = set (old_set) एक सेट का सेट दे सकता है?

लेकिन यह काम करता है। इसलिए मैं प्रश्न पोस्ट कर रहा हूं और संदर्भ के लिए यहां उत्तर देता हूं। यदि किसी और के पास एक ही भ्रम है।

ये दोनों सेट के डुप्लिकेट देंगे: < / p>

  shallow_copy_of_set = set (old_set)   

या: <पूर्व> shallow_copy_of_set = old_set.copy () # जो अधिक पठनीय है ।

इसका कारण यह है कि नहीं से ऊपर का पहला सेट सेट का सेट देता है, यह है कि इसके लिए उचित वाक्यविन्यास set ([ old_set]) । जो काम नहीं करेगा, क्योंकि सेट s अन्य सेट s में तत्व नहीं हो सकते, क्योंकि ये अस्थिरता के आधार पर अयोग्य हैं। हालांकि, यह frozenset s के लिए सही नहीं है, इसलिए फ्रॉजेन्सेट (फ्रोजेंसेट (फ्रोजेंसेट ([1, 2, 3])) == फ्रोज़नसेट ([1, 2, 3])

तो प्रतिकृति के लिए अंगूठे का नियम पायथन (सूचियों, सेट, सेट, फ्रोजेंसेट, स्ट्रिंग) में मूल डेटा संरचनाओं का कोई भी उदाहरण:

  a2 = सूची (ए) # ए एक सूची है b2 = सेट (बी) # b एक सेट सी 2 = डिक्ट (सी) # सी एक डिक्ट डी 2 = फ्रोजेंसेट (डी) # डी एक फ्रोजेंसेट ई 2 = स्ट्र (ई) # ए स्ट्रिंग है # सभी उपरोक्त (उथले) प्रति देते हैं।   

इसलिए, यदि x उन प्रकारों में से एक है, तो

  shallow_copy_of_x = प्रकार (x) (x) # हाली अपठनीय! लेकिन आर्थिक रूप से   

ध्यान दें कि केवल dict , सेट और frozenset में अंतर्निहित copy है ( ) विधि यह शायद एक अच्छा विचार होगा कि सूचियों और तारों में एक copy () विधि भी थी, एकरूपता और पठनीयता के लिए लेकिन वे कम से कम पायथन 2.7.3 में नहीं हैं, जिनके साथ मैं परीक्षण कर रहा हूं।

Comments

Popular posts from this blog

Verilog Error: output or inout port "Q" must be connected to a structural net expression -

Installing croogo for cakephp -