Python 每次我打印一个列表,它都会打印元素两次。我怎样才能防止这种情况发生?

Python 每次我打印一个列表,它都会打印元素两次。我怎样才能防止这种情况发生?,python,list,networking,printing,Python,List,Networking,Printing,输出(在这种情况下,我输入2台服务器并返回2个IP): 现在,当我将该列表插入到脚本的总体目的中时,它会将该列表打印两次。 为了简单起见,“网络”列出了一个子网/路由列表,但我将该代码略去,因为它与手头的问题无关 ['10.0.0.1', '10.0.0.2'] 输出: for ip_address in ip_list: if IPAddress(ip_address) in IPNetwork(network): print(ip_addre

输出(在这种情况下,我输入2台服务器并返回2个IP):

现在,当我将该列表插入到脚本的总体目的中时,它会将该列表打印两次。 为了简单起见,“网络”列出了一个子网/路由列表,但我将该代码略去,因为它与手头的问题无关

['10.0.0.1', '10.0.0.2']
输出:

    for ip_address in ip_list:
        if IPAddress(ip_address) in IPNetwork(network):
            print(ip_address)
如何使地址打印一次而不是两次?

在循环完成后执行
打印(ip\U列表)
,因此您只打印一次,而不是每次附加到地址之后

此外,您还应该将其附加到
try
中的列表中。否则,当出现错误时,仍然会追加服务器,并追加上一个服务器的地址

循环完成后,请执行
打印(ip\U列表)
,这样您只能打印一次,而不是每次附加到它之后

此外,您还应该将其附加到
try
中的列表中。否则,当出现错误时,仍然会追加服务器,并追加上一个服务器的地址


将打印移出循环。什么是IPAddress和IPNetwork?类?@OlvinRoght什么意思?将打印从循环中移出?如果我这样做,就会出现缩进错误。您是否打算将找不到的服务器添加到列表中?您有
ip\u列表。在
try
之外追加(ip\u addr)
,因此即使在出现错误后也会执行。因此,我发现我在输出中得到了两个条目,因为10.0.0.1和10.0.0.2返回并打印默认路由@0.0.0.0/0,它们还返回路由10.0.0.0/24。我想知道如何才能排除默认路由,而不必每次都排除它,因为在边缘情况下,0.0.0.0/0将应用移动打印输出循环。什么是IPAddress和IPNetwork?类?@OlvinRoght什么意思?将打印从循环中移出?如果我这样做,就会出现缩进错误。您是否打算将找不到的服务器添加到列表中?您有
ip\u列表。在
try
之外追加(ip\u addr)
,因此即使在出现错误后也会执行。因此,我发现我在输出中得到了两个条目,因为10.0.0.1和10.0.0.2返回并打印默认路由@0.0.0.0/0,它们还返回路由10.0.0.0/24。我想知道我如何能够排除默认路由,而不让它每次都排除,因为边缘情况下,0.0.0.0/0将适用。我将使用
else
block追加列表,你认为如何?我将使用
else
block追加列表,你认为如何?
    for ip_address in ip_list:
        if IPAddress(ip_address) in IPNetwork(network):
            print(ip_address)
10.0.0.1
10.0.0.2
10.0.0.1
10.0.0.2
ip_list = []
server_list = []
while True:
    try:
        server = (input('> '))
        if server == 'q':
            break
        ip_addr = socket.gethostbyname(server)
        ip_list.append(ip_addr)
        server_list.append(server)
    except socket.gaierror:
        print(server, 'can\'t find server/ip', '\n')

print(ip_list)
print(server_list)