from collections import Counter
l = [
['c','b'],
['b','a'],
['f', 'b'],
['e', 'c', 'b', 'f', 'a'],
]
frequency = Counter(x for sublist in l for x in sublist)
print('frequency', frequency)
l = sorted(l, key=len)
position = {}
for index, sublist in enumerate(l):
sublist = sorted(sublist, key=lambda x: frequency[x], reverse=True)
# for i in sublist:
# if i not in position:
# position[i] = sublist.index(i)
# print('position', position)
if index == 0:
print(index, sublist)
elif set(sublist) == set(l[index-1]):
print(index, sublist, 'same')
else:
new_list = []
for element in sublist:
row = 0
main_index = None
while row < len(l):
if element in l[row]:
main_index = l[row].index(element)
break
row += 1
element_dict = {
'element': element,
'main_index': main_index,
'row': row
}
new_list.append(element_dict)
# print('new_list', new_list)
second_list = [''] * len(new_list)
new_list = sorted(new_list, key=lambda x:x.get('row'))
input_list = new_list
# 创建一个列表,用于存储结果
result = [None] * 10
print('new_list', new_list)
# 遍历输入列表,将元素插入到对应位置
for item in input_list:
if result[item['main_index']] is None:
result[item['main_index']] = item['element']
else:
index = item['main_index']
while result[index] is not None:
index += 1
result[index] = item['element']
print(result)
09-17
1700
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交