我正在尝试使函数遍历列表。谁能告诉我并解释我做错了什么?
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
谢谢
答案 0 :(得分:2)
您的函数返回它在for循环的第一次迭代中遇到的值,从而导致循环立即终止。代替循环,将列表的值连接在一起,然后将它们全部返回到一个字符串中。
def ip_addr(addr_list):
return "\n".join(addr_list)
答案 1 :(得分:0)
我不确定您要做什么,但这是一些解决方案:
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))
答案 2 :(得分:0)
您的问题是您在循环的第一次迭代中返回,然后仅获得第一次迭代。 尝试:
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)
答案 3 :(得分:-1)
在所有有效答案之上,您还可以使用一个空的空白列表,并将其附加在值内并返回该虚拟列表。