Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
索引器:列表索引超出范围-python for循环_Python_Python 2.7 - Fatal编程技术网

索引器:列表索引超出范围-python for循环

索引器:列表索引超出范围-python for循环,python,python-2.7,Python,Python 2.7,我正在尝试修复此错误,但我并不真正理解它,因为我是一名技术较差的网络工程师。 我正在一个列表中读取路由器上的显示命令行-一切正常。 从该列表中,我想解析出某些值,我正在使用for循环进行解析。 最后我得到了我需要的结果,但也有一个错误。 我只需要列表中的某些值,仅为“第三个”IP地址,没有端口号等(即“2.122.62.193”、“31.49.158.183”) out1=['tcp 217.33.162.162:443172.16.0.1:4432.122.62.193:49971 2.122

我正在尝试修复此错误,但我并不真正理解它,因为我是一名技术较差的网络工程师。
我正在一个列表中读取路由器上的显示命令行-一切正常。
从该列表中,我想解析出某些值,我正在使用for循环进行解析。
最后我得到了我需要的结果,但也有一个错误。
我只需要列表中的某些值,仅为“第三个”IP地址,没有端口号等(即“2.122.62.193”、“31.49.158.183”)

out1=['tcp 217.33.162.162:443172.16.0.1:4432.122.62.193:49971
2.122.62.193:49971',tcp 217.33.162.162:443 172.16.0.1:443
31.49.158.183:49266   31.49.158.183:49266', '']
蚊虫=[]
对于x输入输出1:
y=x
z=y.split(“:”)[3]
w=z.split()[1]
昆虫附加(w)
>>>对于x输入输出1:
...    y=x
...    z=y.split(“:”)[3]
...    w=z.split()[1]
...    昆虫附加(w)
...
回溯(最近一次呼叫最后一次):
文件“”,第3行,在
索引器:列表索引超出范围
>>>印虫
['2.122.62.193', '31.49.158.183'
它可能不是最有效的代码,但这是正确的结果。

只是我不理解错误?

查看列表值,您可能会看到您的错误位于
''。拆分(':')[3]
。您在拆分什么

试试这个逻辑

  • 如果是空字符串,则不执行任何操作
  • 分割空间
  • 抓取IP:端口
  • 分离端口
  • 像这样的

    for x in out1:
        if x.strip() == '':
            continue
       ip_port = x.split()[3]
       ip = ip_port.split(':')[0]
       gnat.append(ip)
    

    你不能拆分
    (列表中的最后一个字符串),这是我缺少的东西,即“”字符串。现在我看到它了,这是多么明显!
    for x in out1:
        if x.strip() == '':
            continue
       ip_port = x.split()[3]
       ip = ip_port.split(':')[0]
       gnat.append(ip)