回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我编写了一个脚本来下拉aws标记的列表,然后阅读最后一个octect并告诉我哪个是最高的IP。例如。以下是返回的标记列表:</p>
<pre><code>['vlslabmc, 172.16.0.13/24', 'vlslabmc,172.16.0.5/24', 'vlslabmc,172.16.0.3/24', 'vlslabmc,172.16.0.12/24', 'vlslabmc,172.16.0.16/24', 'vlslabmc,172.16.0.6/24', 'vlslabmc,172.16.0.1/24', 'vlslabmc,172.16.0.11/24', 'vlslabmc,172.16.0.15/24', 'vlslabmc,172.16.0.17/24', 'vlslabmc,172.16.0.4/24', 'vlslabmc,172.16.0.7/24', 'vlslabmc,172.16.0.10/24', 'vlslabmc,172.16.0.9/24', 'vlslabmc,172.16.0.8/24', 'vlslabmc,172.16.0.2/24', 'vlslabmc,172.16.0.14/24']
</code></pre>
<p>下面是我的代码,用来计算tagLis中最大的IP(注意,最大的是17172.16.0.17)</p>
^{pr2}$
<p>我不知道为什么。。但当我打印largestIP的值时,它总是打印出16。我已经看过了应该有效的代码<strong>(我避免使用max函数,因为我只是在学习编码)</strong></p>
<p>如有任何帮助,我们将不胜感激。在</p>
<p>谢谢</p>
<h2><strong>用下面的答案和问题进行编辑</strong></h2>
<p>好吧,多亏了cmarie的线索,我找到了它,问题主要是</p>
<pre><code>33 largestIP = int(ipList[0])
</code></pre>
<p>下面是前面运行的代码,在list <a href="https://www.cnpython.com/list/append" class="inner-link">append</a>中添加了print语句:</p>
<pre><code>'13']
['13', '5']
['13', '5', '3']
['13', '5', '3', '12']
['13', '5', '3', '12', '16']
16
['13', '5', '3', '12', '16', '6']
16
['13', '5', '3', '12', '16', '6', '1']
16
['13', '5', '3', '12', '16', '6', '1', '11']
16
... ...
['13', '5', '3', '12', '16', '6', '1', '11', '15', '17', '4', '7', '10', '9', '8', '2']
16
['13', '5', '3', '12', '16', '6', '1', '11', '15', '17', '4', '7', '10', '9', '8', '2', '14']
16
</code></pre>
<p>基本上,在这个循环过程中:</p>
<pre><code>33 largestIP = int(ipList[0])
34 for latestIP in ipList:
35 if int(latestIP) > largestIP:
36 largestIP = latestIP
</code></pre>
<p>循环在第一个最大整数处停止。在这个例子中是16。<strong>*我不知道为什么会这样,但确实如此</p>
<p>工作代码如下:</p>
<pre><code>19 def findLargestIP():
20 ipList =[]
21 for i in tagList:
22 #remove all the spacing in the tags
23 ec2Tags = i.strip()
24 #seperate any multiple tags
25 ec2SingleTag = ec2Tags.split(',')
26 #find the last octect of the ip address
27 fullIPTag = ec2SingleTag[1].split('.')
28 #remove the CIDR from ip to get the last octect
29 lastIPsTag = fullIPTag[3].split('/')
30 lastOctect = lastIPsTag[0]
31 ipList.append(int(lastOctect))
32 print ipList
33 largestIP = 0
34 for latestIP in ipList:
35 if latestIP > largestIP:
36 largestIP = latestIP
37 print latestIP
38 print largestIP
39 return largestIP
</code></pre>
<p>结果是:</p>
<pre><code>[13, 5, 3, 12, 16]
13
16
[13, 5, 3, 12, 16, 6]
13
16
[13, 5, 3, 12, 16, 6, 1]
13
16
[13, 5, 3, 12, 16, 6, 1, 11]
13
16
[13, 5, 3, 12, 16, 6, 1, 11, 15]
13
16
[13, 5, 3, 12, 16, 6, 1, 11, 15, 17]
13
16
17
</code></pre>
<p>注意找到了17个。在</p>