I have list text original = [‘3A’, ‘2B’, ‘3A’, ‘2B’, ‘3A’,“4A”]
How to get new_list and reoder:
get = [‘3A’, ‘2A’, ‘3B’, ‘2B’, ‘3C’, “4A”]
Thank advance !!!
import collections
original = ['3A', '2B', '3A', '2B', '3A',"4A"]
duplicate = [item for item, count in collections.Counter(original).items() if count > 1]
#get duplicate index
def find_indices(list_check, item_find):
return [idx for idx, value in enumerate(list_check) if value == item_find]
index_duplicate = []
for i in duplicate:
index_duplicate.append(find_indices(original, i))
print(index_duplicate)
print("\n")
#how to get list of index
list_by_index = [['3A', '3A', '3A'], ['2B', '2B']]
print(list_by_index)
print("\n")
# and how to get new list
new_list = ['3A', '3B', '3C', '2A', '2B']
print(new_list)
print("\n")
#and get list sorted by index of original
get = ['3A', '2A', '3B', '2B', '3C', "4A"]
print(get)
import sys
original = ['3A', '2B', '3A', '2B', '3A',"4A"]
out = []
# create a dict to store letter (start letter is 'A')
dict_suffix = {i[0] : "A" for i in original}
for i in original:
current_suffix = dict_suffix[i[0]]
out.append(i[0] + current_suffix)
# update the dict and increment the letter
dict_suffix[i[0]] = chr(ord(current_suffix)+ 1)
OUT = out
Hi change a litle bit, I can get new list by add prefix and same index of old list.
import sys
import re
original = ['B-3A',"G-65BA",'250B', '30A', '250B', '30A',"450A","B-700AB"]
out = []
# create a dict to store letter (start letter is 'A')
dict_suffix = {i[:4] : "A" for i in original}
for i in original:
current_suffix = dict_suffix[i[:4]]
out.append("JW-" + re.findall(r'\d+', i)[0] + current_suffix)
# update the dict and increment the letter
dict_suffix[i[:4]] = chr(ord(current_suffix)+ 1)
print(out)
#result: ['JW-3A', 'JW-65A', 'JW-250A', 'JW-30A', 'JW-250B', 'JW-30B', 'JW-450A', 'JW-700A']