编辑代码

# coding:utf-8
#JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
# 时段电量
times = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]
times0 = times[:]
electricity1 = [475, 475, 475, 475, 475, 475, 475, 1188, 1663, 2020, 1901, 1782, 1901, 1663, 1901, 1901, 1663, 1426, 1307, 1307, 1426, 1188, 950, 832]
times1 = ["平","平","谷","谷","谷","谷","平","峰","峰","平","谷","深谷","深谷","深谷","谷","平","尖峰","尖峰","尖峰","峰","峰","平","平","平"]
times2 = [""] * 24
data = [0,"",0]*24
for t in range(0,24):
    data[t] = times[t],times1[t],electricity1[t]

data = [item for item in data if isinstance(item, tuple)]
data0 = data[:]
for t in range(0,24):
    if times1[t] == "深谷" or times1[t] == "尖峰":
        times2[t] = times1[t]
        data0[t] = data0[t][0],data0[t][1],-1


# 使用sorted和lambda函数来同时考虑元素和它们的索引
data0 = sorted(data0, key=lambda x: x[2])

for t in range(0,24):
    if data0[0][2] == -1:
        data0 = data0[1:]
data1 = [tup for tup in data0 if tup[1] == '平' or tup[1] == '谷']
data2 = [tup for tup in data0 if tup[1] == '平' or tup[1] == '峰']
print(data1)
print(data2)
index = len(data0)
index0 = (index - 12)//2
while(index >= 14):    
    number = (data1[0][2] * 0.5) + (data2[len(data2)-1][2] * 1.5)
    number0 =  (data1[0][2] + data2[len(data2)-1][2])
    if number0 < number:
        for t in range(0,len(data)):
            if data[t][0] == data1[0][0]:
                q = data0.index(data1[0])
                data0 = data0[:q] + data0[q+1:]
                data[t] = (data[t][0], "gu", data[t][2])
                times2[data1[0][0]-1] = "gu"

            elif data[t][0] == data2[len(data2)-1][0]:
                q = data0.index(data2[len(data2)-1])
                data0 = data0[:q] + data0[q+1:]
                data[t] = (data[t][0], "feng", data[t][2])
                times2[data2[len(data2)-1][0]-1] = "feng"
                
        data1 = data0[1:]
        data2.pop()
    index-=2

print("--------------------------")
for t in range(0,len(data0)):
    for i in range(0,len(data)):
        if data[i][0] == data0[t][0]:
            data[i] = (data[i][0], "ping", data[i][2])
            times2[data[i][0]-1] = "ping"

print(times2)
print(data0)
print(data)