如何在python中循环通过不连续的for循环

问题描述 投票:0回答:1

我正在编写一个缩放脚本,在其中需要使用for循环遍历不连续列表。

我的要求是我有两套vlan:

  1. no_of_l2_vlans,start_l2_vlan-这是指一组并且在每个元素内我都执行某些操作。
  2. no_of_l3_vlans,start_l3_vlan-这是指另一个集合,我执行的操作与上一次迭代相同,

我已经完成了对每个线性使用两个for循环的操作,但是只是想知道是否有一种有效的方法?

 for i in range(l2_vlan_start,l2_vlan_start+no_of_l2_vlans):
     <some set of operations>

 for i in range(l3_vlan_start,l3_vlan_start+no_of_l3_vlans):
     <same set of operations>

由于操作相同,我可以将这两个for循环合并为一个循环吗?

请告知。

python
1个回答
0
投票

虽然我更喜欢@ 0x5453的回答,但这里有些东西更加具体化了您的问题并显示了香肠的制作方法:

def mychain(spans):
    for start, no in spans:
        for i in range( start, start+no ):
            yield i

for x in mychain(((l2_vlan_start,no_of_l2_vlans),(l3_vlan_start,no_of_l3_vlans))):
    print(x)
© www.soinside.com 2019 - 2024. All rights reserved.