使用for循环创建列表以增加IP地址

时间:2014-09-01 03:10:41

标签: python list for-loop

net = '192.168.1.'
host = []

for x in range(1,255):
    host.append(net+str(x))

我试图用for循环生成python中的IP列表。有没有更简单的方法来写这个?例如,一种创建与for循环一致的主机列表的方法,而不必预先生成主机列表?

2 个答案:

答案 0 :(得分:3)

如果您打算只使用一次,可能需要为此使用生成器表达式。

addrs = (net + str(x) for x in range(1, 255))

否则你可能想要这样的东西

def make_24_hosts(prefix):
    return (prefix + str(x) for x in range(1, 255))

然后你可以做类似

的事情
>>> make_24_hosts('192.168.2.')
<generator object <genexpr> at 0x7f7b364930a0>
>>> g = make_24_hosts('192.168.2.')
>>> next(g)
'192.168.2.1'
>>> next(g)
'192.168.2.2'

或者使用for循环迭代该生成器。

答案 1 :(得分:0)

您可以使用列表理解轻松地在一行中创建列表:

net = "192.168.1."
hosts =  [ net + str(i) for i in range (1, 255)