Преобразование IP-адреса в ulong в Python [дубликат]

Оператор not отрицает вашу переменную (превращая ее в логическую, если она еще не одна). Вы можете , вероятно, использовать 1 и 0 взаимозаменяемо с True и False, поэтому просто отрицайте это:

toggle = not toggle

Но если вы используете два произвольных значения, используйте встроенный if:

toggle = 'a' if toggle == 'b' else 'b'
32
задан Hannele 18 May 2012 в 18:00
поделиться

9 ответов

79
ответ дан Not_a_Golfer 26 August 2018 в 18:03
поделиться
4
ответ дан CodeColorist 26 August 2018 в 18:03
поделиться
25
ответ дан fred.yu 26 August 2018 в 18:03
поделиться
7
ответ дан manphiz 26 August 2018 в 18:03
поделиться
27
ответ дан ndemou 26 August 2018 в 18:03
поделиться
2
ответ дан RafaelC 26 August 2018 в 18:03
поделиться
0
ответ дан Said Ali Samed 26 August 2018 в 18:03
поделиться
1
ответ дан The.Anti.9 26 August 2018 в 18:03
поделиться

Вот однолинейные ответы:

import socket, struct

def ip2long_1(ip):
    return struct.unpack("!L", socket.inet_aton(ip))[0]

def ip2long_2(ip):
    return long("".join(["{0:08b}".format(int(num)) for num in ip.split('.')]), 2)

def ip2long_3(ip):
    return long("".join(["{0:08b}".format(num) for num in map(int, ip.split('.'))]), 2)

Время выполнения:

ip2long_1 => 0.0527065660363234 (The Best ) ip2long_2 => 0,577211893924598 ip2long_3 => 0,5552745958088666

5
ответ дан Tomer Zait 26 August 2018 в 18:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: