'Extracting items from 2d List

I have one 2d list splited_body:

splited_body= [
 ['startmsg', 'This is a test massage.', 'endmsg\r\n'], 
 ['startmsg', 'Hi There is some issue in the process.', '5', 'F3', 'D1', '2', 'endmsg\r\n']
]

I want to print all data before 'endmsg' and I am using for and if combination as below:

for i in range(len(splited_body)):
    for j in range(len(splited_body[i])):
        if splited_body[i][j] == 'endmsg':
            break
        x = splited_body[i][j]
        print(x)

But it is printing all items in the list. How can I do that. Please someone tell what I am doing wrong?



Solution 1:[1]

I'd use startswith:

for b in splited_body:
    for i in b:
        if i.startswith('endmsg\r\n'):
            break
        print(i)

Solution 2:[2]

Using in keyword you can iterate individual elements in a list. So you can try this out:

for body in splited_body:
    for msg in body:
        if msg.strip() == 'endmsg':
            break
        print(msg)

Solution 3:[3]

Python removes last element from list by [:-1].

for items in splited_body:
    print(items[:-1])

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2
Solution 3 AboAmmar