net = '192.168.1.'
host = []
for x in range(1,255):
host.append(net+str(x))
我试图用for循环生成python中的IP列表。有没有更简单的方法来写这个?例如,一种创建与for循环一致的主机列表的方法,而不必预先生成主机列表?
答案 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)