Skip to main content
 首页 » 编程设计

python之在跳过值的同时遍历 python 中的列表

2025年05月04日20zhengyun_ustc

我有一个数字列表,我想遍历所有列表并进行以下计算。

这些值中的每一个都添加到负载需求并从可用功率中减去。我的代码迭代到某个点并停止计算。

num = [5,2,1,2,8,1,2] 
 
Pa = 130            #available power 
Ld = 100            #total load demad 
Pn = 0              #new power request 
node =0 
 
for number in num: 
    Pa -= num[node] 
    Ld += num[node] 
    if Pa >= Ld: 
        Pna = Pa 
        Lnd = Ld 
        Pn += num[node] 
 
        #print "new added value is : ", Pn 
    node += 1 
 
print "Available power : ", Pna 
print "Demand power : ", Lnd 

输出是

Available power :  120 
Demand power :  110 

迭代到第 5 个元素并停止,我想从第 6 个元素开始迭代,同时跳过 Pa >= Ld 变为 false 的值。

我是 Python 新手,所以我的编码结构可能不太好。有没有办法使用 for 和 if 循环或其他方法来满足我的要求?

提前致谢

请您参考如下方法:

在验证当前节点值可接受之前,不应修改 Pa 或 Ld。

num = [5, 2, 1, 2, 8, 1, 2] 
 
Pa = 130            #available power 
Ld = 100            #total load demad 
Pn = 0              #new power request 
 
for node in num: 
    temp_Pa = Pa - node 
    temp_Ld = Ld + node 
    if temp_Pa >= temp_Ld: 
        Pa = temp_Pa 
        Ld = temp_Ld 
        Pn += node 
        print(node, 'ok', Pn, Pa, Ld) 
    else: 
        print('skipping', node) 
 
print("Available power : ", Pa) 
print("Demand power : ", Ld) 

输出

5 ok 5 125 105 
2 ok 7 123 107 
1 ok 8 122 108 
2 ok 10 120 110 
skipping 8 
1 ok 11 119 111 
2 ok 13 117 113 
Available power :  117 
Demand power :  113