Mam listę:

ip_info = ['10.0.0.2/10.10.10.1', '10.0.111.1/10.10.121.4', '10.0.145.15/10.99.10.1', '10.99.0.1/10.44.155.4', '10.0.10.1/10.10.110.1']

Chcę mieć w stanie usunąć wszystkie znaki po znaku / dla każdego elementu na liście.

Na wyjście:

ip_info = ['10.0.0.2/', '10.0.111.1/', '10.0.145.15/', '10.99.0.1/', '10.0.110.1/']

Stamtąd będę mógł usunąć problem /, ponieważ są one statyczne i można je łatwo usunąć.

Próbowałem:

for x  in ip_info:
    ''.join(ip_info.partition('/')[0:2])

Nie sądzę, że to jest poprawne. Ponieważ musi się wydarzyć dla każdego elementu na liście. Wsparcie?

2
BilliAm 13 sierpień 2014, 19:31

2 odpowiedzi

Najlepsza odpowiedź

Korzystanie ze składanych list:

ip_info = [ip.split('/')[0] for ip in ip_info]

>>> ip_info = ['10.0.0.2/10.10.10.1', '10.0.111.1/10.10.121.4', '10.0.145.15/10.99.10.1',
'10.99.0.1/10.44.155.4', '10.0.10.1/10.10.110.1']
>>> ip_info = [ip.split('/')[0] for ip in ip_info]
>>> print ip_info
['10.0.0.2', '10.0.111.1', '10.0.145.15', '10.99.0.1', '10.0.10.1']
3
flau 13 sierpień 2014, 15:47
>>> ip_info = ['10.0.0.2/10.10.10.1', '10.0.111.1/10.10.121.4', '10.0.145.15/10.99.10.1', '10.99.0.1/10.44.155.4', '10.0.10.1/10.10.110.1']
>>> [i.split('/')[0] for i in ip_info] 
['10.0.0.2', '10.0.111.1', '10.0.145.15', '10.99.0.1', '10.0.10.1']
2
vaultah 21 sierpień 2014, 11:23