Python单行分割字符串,如“192.168.0.0/24”和“8.8.8.8”?

tim*_*kay 3 python

在 Perl 或 Javascript 中,它是单行的:

my($net, $bits) = split('/', $data, 2);

或者

let [net, bits] = data.split('/');

Python中有单行吗?据我所知,它需要几行。例如:

res = data.split('/')
ip, bits = res[0], None
if len(res) == 2:
    bits = res[1]
Run Code Online (Sandbox Code Playgroud)

或更好,

res = data.split('/')
ip, bits = res if len(res) == 2 else res[0], None
Run Code Online (Sandbox Code Playgroud)

Mar*_*yer 9

partition()如果您不介意未使用变量的轻微丑陋,您可以使用它:

net, _, bits = "8.8.8.8".partition('/')
net, bits
# ('8.8.8.8', '')

net, _, bits = "192.168.0.0/24".partition('/')
net, bits
# ('192.168.0.0', '24')
Run Code Online (Sandbox Code Playgroud)