मेरे पास फुटबॉल में स्थानान्तरण की उम्र वाली एक सूची है। हर बार "Age" सूची में मौजूद होने पर स्थानांतरण से क्लब में और क्लब से बाहर हो जाता है।

इसलिए मैं स्थानांतरित करने के लिए लेबल करने के लिए "in" और "out" तत्वों के साथ एक नई सूची बनाना चाहता हूं।

ages = ["Age", "23", "20", "18", "Age", "23", "14", "Age", "35", "32", "24", "Age", "35"]

अपेक्षित उत्पादन:

in_out = ["Age", "in", "in", "in", "Age", "out", "out", "Age", "in", "in", "in", "Age", "out"]

किसी भी सहायताको बहुत सराहा जाएगा!

0
Christian Rønsholt 5 सितंबर 2021, 09:51

2 जवाब

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

आप इसे आजमा सकते हैं:

ages = ["Age", "23", "20", "18", "Age", "23", "14", "Age", "35", "32", "24", "Age", "35"]

s = ["in", "out"]
out = []
j = 1
for i in ages:
    if i=="Age":
        out.append("Age")
        j = ~j
    else:
        out.append(s[j])

आउटपुट:

['Age',
 'in',
 'in',
 'in',
 'Age',
 'out',
 'out',
 'Age',
 'in',
 'in',
 'in',
 'Age',
 'out']
1
user1740577 5 सितंबर 2021, 07:06

आप एक-लाइनर सूची समझ के साथ प्रयास कर सकते हैं:

print([['out', 'in'][ages[:i].count('Age') % 2] if v != 'Age' else v for i, v in enumerate(ages)])

या आप लूप के साथ कोशिश कर सकते हैं:

ages = ["Age", "23", "20", "18", "Age", "23", "14", "Age", "35", "32", "24", "Age", "35"]
x = 'out'
for i, v in enumerate(ages):
    if v == 'Age':
        x = ['in', 'out'][x == 'in']
    else:
        ages[i] = x

print(ages)

दोनों आउटपुट:

['Age', 'in', 'in', 'in', 'Age', 'out', 'out', 'Age', 'in', 'in', 'in', 'Age', 'out']
1
U12-Forward 5 सितंबर 2021, 06:57