繁体   English   中英

如何在python中遍历不连续的for循环

[英]How to iterate through discontiguous for loop in python

我正在编写一个比例脚本,我需要使用 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 循环合并为一个吗?

请指教 。

虽然我更喜欢@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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM