python - पायथन में सूची का अगला तत्व प्राप्त करें




list (3)

मेरे पास वाक्यों की एक सूची है:

lst = ['A B C D','E F G H I J','K L M N']

मैंने जो किया है

l = []
for i in lst:
    for j in i.split():
        print(j)
        l.append(j) 

first = l[::2]
second = l[1::2]

[m+' '+str(n) for m,n in zip(first,second)]

मुझे जो आउटपुट मिला है

lst = ['A B', 'C D', 'E F', 'G H', 'I J', 'K L', 'M N']

मुझे जो आउटपुट चाहिए वह है:

lst = ['A B', 'B C','C D','E F','F G','G H','H I','I J','K L','L M','M N']

मैं यह सोचने के लिए संघर्ष कर रहा हूं कि इसे कैसे प्राप्त किया जाए।


आपकी समस्या यह है कि आप पूरी सूची को समतल कर रहे हैं और जोड़ों को विभाजित कर रहे हैं जब आप बाद के जोड़ों को केवल आंतरिक तत्वों में विभाजित करना चाहते हैं। तो इसके लिए हम प्रत्येक तत्व पर अलग से ऑपरेशन करेंगे:

lst = ['A B C D','E F G H I J','K L M N']

res = []
for s in lst:
    sub_l = s.split()
    for i in range(len(sub_l)-1):
        res.append("{} {}".format(sub_l[i], sub_l[i+1]))
print(res)

देता है:

['A B', 'B C', 'C D', 'E F', 'F G', 'G H', 'H I', 'I J', 'K L', 'L M', 'M N']

पहले अपनी स्ट्रिंग की सूची को सूची की सूची में स्वरूपित करें, फिर zip द्वारा एक मैपिंग करें।

i = [i.split() for i in lst]

f = [f"{x} {y}" for item in i for x,y in zip(item,item[1::])]

print (f)

#['A B', 'B C', 'C D', 'E F', 'F G', 'G H', 'H I', 'I J', 'K L', 'L M', 'M N']

nested = []
for item in lst:
    item = (' '.join(item).split())
    for ix in range(len(item) - 1):
        nested.append(' '.join(item[ix:ix + 2]))

print (nested)

उत्पादन:

['A B', 'B C', 'C D', 'E F', 'F G', 'G H', 'H I', 'I J', 'K L', 'L M', 'M N']




list