मेरे पास इस तरह का एक सेट है:
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
मैं [0,1,2,3,4,5,6,7,8,9,10]
इस सेट में मान कैसे जोड़ूं ?
मेरे पास इस तरह का एक सेट है:
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
मैं [0,1,2,3,4,5,6,7,8,9,10]
इस सेट में मान कैसे जोड़ूं ?
जवाबों:
keep.update(yoursequenceofvalues)
उदाहरण के लिए, keep.update(xrange(11))
अपने विशिष्ट उदाहरण के लिए। या, आप अगर है किसी अन्य कारण से एक पाश में मूल्यों का उत्पादन करने,
for ...whatever...:
onemorevalue = ...whatever...
keep.add(onemorevalue)
लेकिन, निश्चित रूप से, यह एक .update
कॉल के साथ बल्क में करना तेज और आसान है, जब अन्यथा संभव हो।
.add
एक एकल हैश प्रकार के होने की .update
अपेक्षा करता है , जबकि एक चलने योग्य वस्तु की उम्मीद करता है
.add
, नहीं .update
, मुझे हाल ही में इस छोटे से विवरण के कारण काफी डरपोक बग का सामना करना पड़ा।
सेट को परिभाषित करें
a = set()
एकल मूल्यों को जोड़ने के लिए उपयोग करें
a.add(1)
a.add(2)
ट्यूल, सेट, सूची या फ्रोजन-सेट से तत्वों को जोड़ने के लिए अपडेट का उपयोग करें
a.update([3,4])
>> print(a)
{1, 2, 3, 4}
यदि आप स्वयं एक टपल या फ्रोजन-सेट जोड़ना चाहते हैं, तो ऐड का उपयोग करें
a.add((5, 6))
>> print(a)
{1, 2, 3, 4, (5, 6)}
नोट: चूँकि सेट तत्व उपलब्ध नहीं होने चाहिए, और सूचियों को परिवर्तनशील माना जाता है, आप सूची को सेट में नहीं जोड़ सकते। आप सेट में अन्य सेट भी नहीं जोड़ सकते। हालाँकि, आप सूचियों और सेटों में से तत्वों को जोड़ सकते हैं जैसा कि ".update" विधि के साथ दिखाया गया है।
आप |
ऑपरेटर को दो सेटों ( सेट सिद्धांत में संघ ) का उपयोग करने के लिए भी उपयोग कर सकते हैं :
>>> my_set = {1}
>>> my_set = my_set | {2}
>>> my_set
{1, 2}
या एक छोटे रूप का उपयोग कर |=
:
>>> my_set = {1}
>>> my_set |= {2}
>>> my_set
{1, 2}
नोट: पायथन 2.7 से पहले के संस्करणों में, के set([...])
बजाय का उपयोग करें {...}
।
my_sets
, तो आप big_set = my_sets[0].union(*my_sets[1:])
उन सभी को संयोजित करने के लिए कर सकते हैं
यह प्रश्न पहले वाला है जो Google पर दिखाता है जब कोई "पायथन को सेट करने के लिए तत्वों को जोड़ने के लिए" देखता है, तो यह स्पष्ट रूप से ध्यान देने योग्य है कि, यदि आप एक सेट में पूरी स्ट्रिंग जोड़ना चाहते हैं, तो इसे साथ जोड़ा जाना चाहिए .add()
, नहीं है .update()
।
मान लें कि आपके पास एक स्ट्रिंग है foo_str
जिसकी सामग्री है 'this is a sentence'
, और आपके पास कुछ सेट के bar_set
बराबर है set()
।
यदि आप करते हैं
bar_set.update(foo_str)
, तो आपके सेट की सामग्री होगी {'t', 'a', ' ', 'e', 's', 'n', 'h', 'c', 'i'}
।
यदि आप करते हैं bar_set.add(foo_str)
, तो आपके सेट की सामग्री होगी {'this is a sentence'}
।
जिस तरह से मैं यह करना चाहता हूं वह मूल सेट और मान दोनों को सूची में जोड़ना, उन्हें जोड़ना और फिर उन्हें इस तरह से सेट में बदलना है:
setMenu = {"Eggs", "Bacon"}
print(setMenu)
> {'Bacon', 'Eggs'}
setMenu = set(list(setMenu) + list({"Spam"}))
print(setMenu)
> {'Bacon', 'Spam', 'Eggs'}
setAdditions = {"Lobster", "Sausage"}
setMenu = set(list(setMenu) + list(setAdditions))
print(setMenu)
> {'Lobster', 'Spam', 'Eggs', 'Sausage', 'Bacon'}
इस तरह मैं आसानी से एक ही तर्क का उपयोग करके कई सेट जोड़ सकता हूं, जो मुझे मिलता है TypeError: unhashable type: 'set'
अगर मैं इसे .update()
विधि के साथ करने की कोशिश करता हूं ।
.add
एक आइटम.update
जोड़ता है , कई आइटम जोड़ता है। क्या वो सही है?