import copy
def pack(inp):
deepcopy = copy.deepcopy
def _convert(tip,val):
match tip:
case 1:
if val < 62: return [val]
else: return [63,val//65536,val%65536//256,val%65536%256]
case 2:
if val < 32: return [64+val]
elif val < 8192: return [96+val//256,val%256]
elif val < 262144: return [128+val//65536,val%65536//256,val%65536%256]
else: return [160+val//16777216,val%16777216//65536,val%16777216%65536//256,val%16777216%65536%256]
case 3:
if val < 62: return [192+val]
else: return [255,val//65536,val%65536//256,val%65536%256]
def _rle(inp):
pass
def _indexs(string,substring,closed):
indexs = []
stringpos = 0
sublen = len(substring)
startindex = 0
for num in range(len(string)):
if string[num] == substring[stringpos]:
stringpos += 1
if stringpos == 1: startindex = num
else: stringpos = 0
if stringpos == sublen:
stringpos = 0
isclosed = 0
for num2 in range(startindex,num+1):
if closed[num]:
isclosed = 1
break
if not isclosed: indexs.append(startindex)
return indexs
def _pack(inp,selectmode):
closed = [0]*len(inp)
repeats = []
selected = []
selecteds = []
indexs = []
koofs = []
num = 0
clipboardindex = -1
while num < len(inp):
if closed[num]: continue
selected.append(inp[num])
if len(selected) > 1:
nowindexs = _indexs(inp,selected,closed)
if len(nowindexs) < 2 or len (selected) == 65536:
temp = koofs.index(max(koofs))
if koofs[temp] > 0:
selected_indexs = indexs[temp]
selected_selected = selecteds[temp]
clipboardindex += 1
for num2 in range(len(selected_indexs)):
if num2 == 0: repeats.append([1,selected_indexs[num2],selected_indexs[num2]+len(selected_selected),clipboardindex])
else: repeats.append([2,selected_indexs[num2],selected_indexs[num2]+len(selected_selected),clipboardindex])
for num3 in range(selected_indexs[num2],selected_indexs[num2]+len(selected_selected)): closed[num3] = 1
else: num =- 1
selected = []
selecteds = []
indexs = []
koofs = []
else:
selecteds.append(deepcopy(selected))
indexs.append(deepcopy(nowindexs))
koofs.append((len(selected)*len(nowindexs))-(len(selected)+len(nowindexs)))
num += 1
print(closed)
print(repeats)
print(inp)
_pack(inp,1)
pack(["a", "b", "r", "a", "c", "a", "d", "a", "b", "r", "a"]) пишет ошибку
temp = koofs.index(max(koofs))
^^^^^^^^^^
ValueError: max() arg is an empty sequence
помогите
почему то список koofs пустой но такого не должно быть
def pack(inp):
deepcopy = copy.deepcopy
def _convert(tip,val):
match tip:
case 1:
if val < 62: return [val]
else: return [63,val//65536,val%65536//256,val%65536%256]
case 2:
if val < 32: return [64+val]
elif val < 8192: return [96+val//256,val%256]
elif val < 262144: return [128+val//65536,val%65536//256,val%65536%256]
else: return [160+val//16777216,val%16777216//65536,val%16777216%65536//256,val%16777216%65536%256]
case 3:
if val < 62: return [192+val]
else: return [255,val//65536,val%65536//256,val%65536%256]
def _rle(inp):
pass
def _indexs(string,substring,closed):
indexs = []
stringpos = 0
sublen = len(substring)
startindex = 0
for num in range(len(string)):
if string[num] == substring[stringpos]:
stringpos += 1
if stringpos == 1: startindex = num
else: stringpos = 0
if stringpos == sublen:
stringpos = 0
isclosed = 0
for num2 in range(startindex,num+1):
if closed[num]:
isclosed = 1
break
if not isclosed: indexs.append(startindex)
return indexs
def _pack(inp,selectmode):
closed = [0]*len(inp)
repeats = []
selected = []
selecteds = []
indexs = []
koofs = []
num = 0
clipboardindex = -1
while num < len(inp):
if closed[num]: continue
selected.append(inp[num])
if len(selected) > 1:
nowindexs = _indexs(inp,selected,closed)
if len(nowindexs) < 2 or len (selected) == 65536:
temp = koofs.index(max(koofs))
if koofs[temp] > 0:
selected_indexs = indexs[temp]
selected_selected = selecteds[temp]
clipboardindex += 1
for num2 in range(len(selected_indexs)):
if num2 == 0: repeats.append([1,selected_indexs[num2],selected_indexs[num2]+len(selected_selected),clipboardindex])
else: repeats.append([2,selected_indexs[num2],selected_indexs[num2]+len(selected_selected),clipboardindex])
for num3 in range(selected_indexs[num2],selected_indexs[num2]+len(selected_selected)): closed[num3] = 1
else: num =- 1
selected = []
selecteds = []
indexs = []
koofs = []
else:
selecteds.append(deepcopy(selected))
indexs.append(deepcopy(nowindexs))
koofs.append((len(selected)*len(nowindexs))-(len(selected)+len(nowindexs)))
num += 1
print(closed)
print(repeats)
print(inp)
_pack(inp,1)
pack(["a", "b", "r", "a", "c", "a", "d", "a", "b", "r", "a"]) пишет ошибку
temp = koofs.index(max(koofs))
^^^^^^^^^^
ValueError: max() arg is an empty sequence
помогите
почему то список koofs пустой но такого не должно быть