Skip to content Skip to sidebar Skip to footer

Extract Last Two Fields From Split

I want to extract last two field values from a variable of varying length. For example, consider the three values below: fe80::e590:1001:7d11:1c7e ff02::1:ff1f:fb6 fe80::7cbe:e61

Solution 1:

If s is the string containing the IPv6 address, use

s.split(":")[-2:]

to get the last two components. The split() method will return a list of all components, and the [-2:] will slice this list to return only the last two elements.

Solution 2:

You can use str.rsplit() to split from the right:

>>> ipaddress = 'fe80::e590:1001:7d11:1c7e'>>> ipaddress.rsplit(':', 2) # splits at most 2 times from the right
['fe80::e590:1001', '7d11', '1c7e']

This avoids the unnecessary splitting of the first part of the address.

Post a Comment for "Extract Last Two Fields From Split"