3

私はこのリストを持っています:

['192', '168', '0', '1', '80', '192', '168', '0', '2', '8080']...

そして、私はこのリストを取得したい:

['192.168.0.1:80', '192.168.0.2:8080']...

それを行う最良の方法は何ですか?

ポップrangeで使用?list

listスライスを使用していますか?

4

2 に答える 2

5
>>> data = ['192', '168', '0', '1', '80', '192', '168', '0', '2', '8080']
>>> ['{}.{}.{}.{}:{}'.format(*x) for x in zip(*[iter(data)]*5)]
['192.168.0.1:80', '192.168.0.2:8080']

使用するstarmap

>>> from itertools import starmap
>>> list(starmap('{}.{}.{}.{}:{}'.format,zip(*[iter(data)]*5)))
['192.168.0.1:80', '192.168.0.2:8080']
于 2012-05-05T08:54:52.873 に答える
2

これは、「最善の」方法である場合とそうでない場合があります。

>>> a = ['192', '168', '0', '1', '80', '192', '168', '0', '2', '8080']
>>> [":".join([".".join(a[x:x+4]), a[x+4]]) for x in range(0, len(a), 5)]
['192.168.0.1:80', '192.168.0.2:8080']
于 2012-05-05T08:53:58.130 に答える