एक साधारण प्रश्न लगता है लेकिन मैंने बिना परिणाम के एक दर्जन संभावनाओं की कोशिश की। मैं बस ['55.00', ['CHF', '0.00']] को [['55.00'], ['CHF'], ['0.00']] में बदलना चाहता हूं या:

var1 = "55.00"
var2 = "CHF"
var3 = "0.00"

एक उदाहरण के रूप में, मैंने कोशिश की:

mik = ['55.00', ['CHF', '0.00']]
mik = [s.split(',') for s in ','.join(mik).split(',')]

परिणाम: [['सी'], ['एच'], ['एफ'], [''], ['0'], ['।'], ['0'], ['0']]

मेरी स्थिति में समाधान क्या हो सकता है?

0
hacking_mike 15 जिंदा 2022, 15:23

4 जवाब

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

आप अपनी सूची को अनपैक कर सकते हैं। यह उत्तर मानता है कि आपके पास हमेशा [el, [el2, el3]] प्रारूप का RHS होता है

>>> var1, (var2, var3) = ['55.00', ['CHF', '0.00']]
>>> var1
'55.00'
>>> var2
'CHF'
>>> var3
'0.00'
0
Abdul Niyas P M 15 जिंदा 2022, 15:26
बढ़िया, उतना ही सरल। मेरी स्थिति में सही काम करता है
 – 
hacking_mike
15 जिंदा 2022, 15:57
mik = ['55.00', ['CHF', '0.00']]
new_lst = []

for item in mik:
    if type(item) == list:
        for x in item:
            new_lst.append(x)
        continue
    new_lst.append(item)
print(new_lst)

बस आप सूची में पुनरावृति करते हैं और यदि आपने पाया कि आइटम स्वयं एक सूची है तो आप इसके आइटम पर पुनरावृति करते हैं और उन्हें अपने new_lst ऑब्जेक्ट में जोड़ते हैं और यदि यह एक सूची नहीं है तो आप इसे जोड़ दें।

उपरोक्त कोड से आउटपुट:

['55.00', 'CHF', '0.00']
0
Bemwa Malak 15 जिंदा 2022, 15:28

आप जो चाहते हैं वह मूल रूप से आपकी सूची को समतल करना है यदि मैं सही ढंग से समझूं। यह सवाल मददगार हो सकता है।

from collections.abc import Iterable

def flatten(l):
    for el in l:
        if isinstance(el, Iterable) and not isinstance(el, (str, bytes)):
            yield from flatten(el)
        else:
            yield el

mik = flatten(['55.00', ['CHF', '0.00']])
0
rikyeah 15 जिंदा 2022, 15:29

यदि आपके पास केवल ये 3 तत्व हैं, तो आप यह कर सकते हैं:

mik = ['55.00', ['CHF', '0.00']]

mik[1:] = mik[1]

print(mik) # ['55.00', 'CHF', '0.00']

यदि कई सबलिस्ट और/या नेस्टिंग के एक से अधिक स्तर हैं, तो आप लूप में समान दृष्टिकोण का उपयोग कर सकते हैं:

for i,_ in enumerate(mik):
    while isinstance(mik[i],list):
        mik[i:i+1] = mik[i]
0
Alain T. 15 जिंदा 2022, 18:39