मेरे पास एक सूची है जिसे मैंने MySQL सर्वर से पूछताछ की है जिसमें नीचे दिए गए उदाहरण के समान कुछ है लेकिन इसमें और अधिक तत्व हैं। कुछ कारणों से इसमें अतिरिक्त अल्पविराम और कोष्ठक हैं।

[(datetime.datetime(2013, 1, 1, 0, 1, 14),), (datetime.datetime(2013, 1, 1, 1, 33, 50),)]

क्या विशिष्ट कोष्ठक और कोमा को समाप्त करने का कोई तरीका है जो उत्पन्न करेगा

[datetime.datetime(2013, 1, 1, 0, 1, 14), datetime.datetime(2013, 1, 1, 1, 33, 50)]

जब मैं सूची में पहला तत्व प्रिंट करता हूं तो यह दिखाता है

(datetime.datetime(2013, 1, 1, 0, 1, 14),)

मैं इसे कहाँ चाहता हूँ

datetime.datetime(2013, 1, 1, 0, 1, 14)

मुझे समझ में नहीं आ रहा है कि इस समाधान को कहाँ खोजा जाए या इस समस्या को कैसे खोजा जाए। कोई सलाह?

0
Han 2 अप्रैल 2018, 21:16

2 जवाब

सबसे बढ़िया उत्तर

ऐसा लगता है कि आपकी क्वेरी tuple में से एक list लौटा रही है:

myResult = [
    (datetime.datetime(2013, 1, 1, 0, 1, 14),),
    (datetime.datetime(2013, 1, 1, 1, 33, 50),)
]

आप पहले टुपल के पहले तत्व को एक्सेस करके एक्सेस कर सकते हैं:

print(myResult[0][0])
#datetime.datetime(2013, 1, 1, 0, 1, 14)

यहां पहला [0] सूची के सूचकांक 0 को संदर्भित करता है myResult और दूसरा [0] टपल myResult[0] के सूचकांक 0 को संदर्भित करता है।

या आप पहला तत्व प्राप्त करने के लिए सूची समझ का उपयोग करके myResult को संशोधित कर सकते हैं:

print([result[0] for result in myResult])
#[datetime.datetime(2013, 1, 1, 0, 1, 14), datetime.datetime(2013, 1, 1, 1, 33, 50)]

यह एक बग नहीं है, बल्कि यह एक प्रदर्शन समस्या है। (some_value) के बजाय (some_value,) के रूप में प्रदर्शित होने का कारण यह है कि अंत में , के बिना, आपके पास tuple नहीं बल्कि एक जनरेटर अभिव्यक्ति होगी।

यहां और पढ़ें: पायथन टुपल बनाम जेनरेटर

2
pault 2 अप्रैल 2018, 18:34

यह टुपल्स की एक सूची लौटा रहा है, प्रत्येक टुपल जिसमें आप क्वेरी कर रहे थे। आपने केवल एक फ़ील्ड के लिए क्वेरी की थी, इसलिए आपके प्रत्येक टुपल्स में 1 आइटम था। इसे समतल करने के लिए, मैं एक साधारण सूची समझ का उपयोग करूँगा:

flattened = [x[0] for x in result]

जहां result आपकी मूल सूची है।

2
Mattwmaster58 2 अप्रैल 2018, 18:24