अजगर टपल में आइटम जोड़ते हैं


160

मेरे पास कुछ ऑब्जेक्ट हैं। I-s जो मैं उपयोगकर्ता सत्र में ट्यूपल के रूप में संग्रहीत करने का प्रयास करता हूं। जब मैं पहले एक को जोड़ता हूं तो यह काम करता है लेकिन टपल दिखता है, (u'2',)लेकिन जब मैंने mytuple = mytuple + new.idत्रुटि का उपयोग करके नया जोड़ने का प्रयास किया can only concatenate tuple (not "unicode") to tuple

जवाबों:


294

आपको दूसरा तत्व 1-ट्यूपल बनाने की आवश्यकता है, जैसे:

a = ('2',)
b = 'z'
new = a + (b,)

11
आपको इस अल्पविराम की आवश्यकता क्यों है
SIslam

32
@SIslam अल्पविराम के बिना, यह सिर्फ व्याख्या के रूप में आमतौर पर पूर्ववर्ती क्रम में प्राप्त करने के लिए उपयोग किए जाने वाले ब्रैकेट के रूप में समझा जाएगा:(a+b)*c
जोसेफ यंग

2
हाँ, लेकिन आप कर सकते हैं new = a + bके बजाय new = a + (b,)। AFAICT, python3 और python2.7 में समान काम करता है।
ILMostro_7

5
@ ILMostro_7 निर्भर करता है क्या ख यह है
जॉन क्लेमेंट्स

या शीघ्र ही a += ('z',), जैसा कि bellow के उत्तर
artu-hnrq

54

पायथन 3.5 ( पीईपी 448 ) के बाद से आप एक टपल, सूची सेट और तानाशाही के भीतर अनपैकिंग कर सकते हैं:

a = ('2',)
b = 'z'
new = (*a, b)

33

टपल से लिस्ट टू टपल:

a = ('2',)
b = 'b'

l = list(a)
l.append(b)

tuple(l)

या संलग्न करने के लिए मदों की लंबी सूची के साथ

a = ('2',)
items = ['o', 'k', 'd', 'o']

l = list(a)

for x in items:
    l.append(x)

print tuple(l)

आपको देता है

>>> 
('2', 'o', 'k', 'd', 'o')

यहाँ बिंदु है: सूची एक उत्परिवर्तनीय अनुक्रम प्रकार है। इसलिए आप तत्वों को जोड़कर या हटाकर दी गई सूची को बदल सकते हैं। टपल एक अपरिवर्तनीय अनुक्रम प्रकार है। आप एक टपल नहीं बदल सकते। इसलिए आपको एक नया बनाना होगा ।


5
यह केवल दो
टुपल्स

2
हालाँकि अगर आप listशुरुआत में बदलने के लिए ओपी को नोट करते हैं , आइटमों को जोड़ते हैं, और फिर बहुत ही अंत में कन्वर्ट करते हैं tupleतो यह सबसे अच्छा समाधान है +1
जमैलाक

पहली आइटम सूची सहित दो आइटम। लेकिन आप सही हैं, मुझे बेहतर लम्बी = सूची का उदाहरण जोड़ना चाहिए, मेरा संपादन देखें
kiriloff

13

टपल केवल tupleइसे जोड़ने की अनुमति दे सकता है। सबसे अच्छा तरीका यह है:

mytuple =(u'2',)
mytuple +=(new.id,)

मैंने नीचे दिए गए डेटा के साथ एक ही परिदृश्य की कोशिश की, यह सब ठीक काम कर रहा है।

>>> mytuple = (u'2',)
>>> mytuple += ('example text',)
>>> print mytuple
(u'2','example text')

11
>>> x = (u'2',)
>>> x += u"random string"

Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    x += u"random string"
TypeError: can only concatenate tuple (not "unicode") to tuple
>>> x += (u"random string", )  # concatenate a one-tuple instead
>>> x
(u'2', u'random string')


1

निचला रेखा, टुपल को जोड़ने का सबसे आसान तरीका है कि कोष्ठक और अल्पविराम के साथ जोड़ा जा रहा तत्व संलग्न करें।

t = ('a', 4, 'string')
t = t + (5.0,)
print(t)

out: ('a', 4, 'string', 5.0)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.