如何重新组织此列表?

时间:2018-12-19 19:26:06

标签: python string list split ip

我从服务器等待发送给我一个列表,其中包括ip,后跟一个“,”,然后是一个端口,后跟“;”。然后还有另一个元组...和另一个x元组...

示例是:

127.0.0.1,45403;127.0.0.1,47146;127.0.0.1,52888

我想重新组织它,所以我在每个循环中都有x次迭代

Ipx = 127.0.0.1 
Portx = 45403

在循环的下一次迭代中

Ipx = 17.0.0.1
Portx = 47146
每个元组的

etc(Ipx和Portx是不同的变量)

我尝试过

ipx , portx = lista.split(";")
        print ipx
        print portx

但这不起作用...

4 个答案:

答案 0 :(得分:4)

您需要除以;然后按,如下所示:

lista = "127.0.0.1,45403;127.0.0.1,47146;127.0.0.1,52888"

for address in lista.split(";"):
    ipx, portx = address.split(',')
    print(f'IP: {ipx}, Port: {portx}')

答案 1 :(得分:3)

如果服务器的响应是字符串,则可以执行以下操作:

inList = '127.0.0.1,45403;127.0.0.1,47146;127.0.0.1,52888'
inList = [[elem for elem in item.split(',')] for item in inList.split(';')]

for ip, port in inList:
  print(ip)
  print(port)

输出:

127.0.0.1
45403
127.0.0.1
47146
127.0.0.1
52888

答案 2 :(得分:1)

您可以创建OrderedDict并将所有IP和端口保留在列表中

from collections import OrderedDict
d=OrderedDict()

d.setdefault('ip',[])
d.setdefault('port',[])

inList = '127.0.0.1,45403;127.0.0.1,47146;127.0.0.1,52888'
for i in inList.split(';'):
    temp=i.split(',')
    d['ip'].append(temp[0])
    d['port'].append(temp[1])
print(d)

输出

OrderedDict([('ip', ['127.0.0.1', '127.0.0.1', '127.0.0.1']),
             ('port', ['45403', '47146', '52888'])])

答案 3 :(得分:0)

好,所以您正途经中,您需要的是:

ipx = lista.split(";")[0].split(“,”)[0]
portx = lista.split(";")[0].split(“,”)[1]
print ipx
print portx

如果您要注册多个IP地址,则可以使用字典作为:

Ip_port = dict()
For i in all-data:
      a = i.split(";")[0].split(“,”)[0]
     Ip_port[a] = i.split(";")[0].split(“,”)[1]

想象一下,您在python列表中拥有了所有“ lista”。