我正在尝试创建一个函数来迭代列表。谁能让我知道并解释我做错了什么?
iplist = ['1.1.1.1', '2.2.2.2', '3.3.3.3', '4.4.4.4']
def ip_addr(addr_list):
for ip_addresses in addr_list:
return ip_addresses
test = ip_addr(iplist)
print(test)我正在等待输出:
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4但是,我得到了以下输出:
1.1.1.1谢谢
发布于 2019-09-29 05:59:24
你的问题是你在循环的第一次迭代时返回,然后只得到第一次迭代。试试这个:
iplist = ['1.1.1.1', '2.2.2.2', '3.3.3.3', '4.4.4.4']
def ip_addr(addr_list):
addresses = ""
for ip_addresses in addr_list:
addresses += ip_addresses + "\n"
return addresses
test = ip_addr(iplist)
print(test)发布于 2019-09-29 05:54:08
您的函数返回它在for循环的第一次迭代中遇到的值,从而导致循环立即终止。将列表的值连接在一起,并在一个字符串中返回所有值,而不是循环。
def ip_addr(addr_list):
return "\n".join(addr_list)发布于 2019-09-29 05:53:46
我不确定你想做什么,但这里有一些解决方案:
iplist = ['1.1.1.1', '2.2.2.2', '3.3.3.3', '4.4.4.4']
def ip_addr(addr_list):
for ip_addresses in addr_list:
yield ip_addresses
test = ip_addr(iplist)
print(*[ip for ip in test])或者只是
iplist = ['1.1.1.1', '2.2.2.2', '3.3.3.3', '4.4.4.4']
print('\n'.join(iplist))https://stackoverflow.com/questions/58150542
复制相似问题