Python 循环使用索引号作为键名的一部分

标签 python loops

我是 Python 的新手 - 开始尝试。

我想创建一个循环来查找 IP 地址并将循环计数用作键名的一部分。

i = 0
while i < 5:
  ip1= re.search(r'(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}', commandslist)
  if ip1:
    myip1 = ip1.group()
    commandslist = commandslist.replace(myip1,'')
    print 'found', ip1.group()
   i=i+1

我想做的是将 1 替换为 i 的当前值。我已经尝试过 ip[i] 并且只会抛出有关未定义的错误。定义 ip=range(0,5) 似乎根本没有帮助。

任何人都可以指出我回到正确的路径吗? 谢谢。

最佳答案

不需要循环,你可以简单地写:

myip = re.findall(r'(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}', commandslist)

当你真的需要循环时,避免这种情况:

i = 0
while i < 5:
    # do something with i
    i = i + 1

并改用它:

for i in xrange(5):
    # do something with i

当你需要遍历列表的元素时,使用这个:

for e in l:
    # do something with e

在您的情况下,一个完整的示例可能如下所示:

import re

commandslist = 'Lorem 192.168.0.1, ipsum 127.0.0.1: 10.0.0.1 and 10.0.0.2.'
myips = re.findall(r'(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}', commandslist)
for ip in myips:
    print 'found ', ip

关于Python 循环使用索引号作为键名的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4747846/

相关文章:

python - 如何让一个 Flask 应用监听两个不同的端口?

python - 添加到 StringListProperty

jquery - 可以在 CoffeeScript 中循环每个吗?

python - pandas 函数将行数据转置为列

python - Nan当用RMSE/RMSLE损失函数训练模型时

python - travis-ci build on Python3.4 六个 urllib 不会安装

C++ 设置每秒 While 循环的速度

python - 遍历所有给定的参数并检查它们的值

javascript - 单击按钮将代码添加到JS

python - 为不同大小制作循环 def