Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data = ['X-1', 'Y-1', 'Y-2', 'X0', 'X-2', 'X-4', 'Y0', 'Y3', 'Y6', 'Y66', 'X-3', 'Y-3', 'X-4', 'Y-4', 'X-5', 'Y-5', 'Y-4', 'X-337', 'X-22', 'X-3', 'X-2', 'X-1', 'X0', 'Y0', 'Y100']
- def read_seq(position, d_in):
- temp_pos = position
- counter = 1
- first_letter = d_in[position][0]
- values = []
- while temp_pos < len(d_in):
- temp = d_in[temp_pos]
- letter = temp[0]
- value = int(temp[1:])
- if letter != first_letter:
- if len(values) > 1:
- my_min_index = values.index(min(values))
- my_max_index = values.index(max(values))
- if my_min_index < my_max_index:
- return temp_pos, [first_letter+str(min(values)), first_letter+str(max(values))]
- else:
- return temp_pos, [first_letter+str(max(values)), first_letter+str(min(values))]
- else:
- return temp_pos, [first_letter+str(values[0])]
- else:
- print(f"{counter:03d}...Pozice: {temp_pos:03d}. Písmeno {letter} s hodnotou {value}")
- values.append(value)
- temp_pos += 1
- counter += 1
- else:
- if len(values) > 1:
- my_min_index = values.index(min(values))
- my_max_index = values.index(max(values))
- if my_min_index < my_max_index:
- return temp_pos, [first_letter+str(min(values)), first_letter+str(max(values))]
- else:
- return temp_pos, [first_letter+str(max(values)), first_letter+str(min(values))]
- else:
- return temp_pos, [first_letter+str(values[0])]
- readed_position = 0
- result = []
- while len(data) > readed_position:
- print(f"Zpracovávám od {readed_position:03d}... Nová sekvence")
- readed_position, new_minmax = read_seq(readed_position, data)
- result.extend(new_minmax)
- print(f"Zredukovaná sada {result}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement