gpt4 book ai didi

python - 当将每个列表项传递给函数时,如何最好地遍历列表?

转载 作者:行者123 更新时间:2023-11-28 22:43:16 24 4
gpt4 key购买 nike

ipaddress 模块包含一个 IPv4Network 函数,可用于确定 IPv4 地址是否已保留,例如

In [25]: IPv4Address(u'100.64.1.1') in IPv4Network(u'100.64.0.0/10')
Out[25]: True

以上只是一个范围;有几个保留的 IP 地址范围。我想检查给定地址是否在 any 中。冗长的方法是将所有范围放在一个列表中,然后遍历该列表并重复上述检查,例如

def isPrivate(ipaddress):
for range in ranges:
if ipaddress in IPv4Network(range):
print 'private'

似乎有一种更聪明的方法可以用 Python 做一切;是否有更聪明的方法或我不知道的结构?

最佳答案

range 是 Python 内置的,因此用局部变量遮蔽它不是一个好主意。我在这里使用了 r

def isPrivate(ipaddress):
if any(ipaddress in IPv4Network(r) for r in ranges):
print 'private'

如果有多个匹配的可能性,您可以通过将 any 替换为 sum 来计算它们

private_count = sum(ipaddress in IPv4Network(r) for r in ranges)

因为 True 值算作 1

关于python - 当将每个列表项传递给函数时,如何最好地遍历列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30995186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com