我有1000多个字符串的列表,我希望根据条件将列表切成子列表。例如,我的列表看起来像。
my_list = ['pdf', 'csv', 'csv','csv','txt','txt','txt','txt','pdf','pdf','csv','txt','txt','pdf', 'csv', 'csv','txt','txt','txt' ]
进入多个子列表。切片的条件是单词按集合重复多少时间。每个子列表都应增加排序集,在实际情况下,我有1000多个字符串。
所以最终结果看起来像
lst_1=['pdf', 'csv','txt']
lit_2=['pdf', 'csv','txt']
lis_3=['pdf', 'csv','txt']
.
.
.
so on...
我有一些类似下面的东西会给出错误。
arrays = [[my_list[0]]]
for i in range(1, len(my_list)):
if 'pdf','csv','txt' in i:
arrays[len(arrays)-1].append(my_list[i])
print(sorted(set(arrays)))
有人可以帮我解决这个问题吗?
谢谢!
您可以简单地计算出现的次数,然后在需要时重新创建列表。
counter = (0,0,0)
for i in my_list:
if i == "pdf":
counter[0] += 1
elif i == "csv":
counter[1] += 1
elif i == "txt":
counter[1] += 1
然后,您知道其中有多少之后,就可以遍历计数最少的字符串并创建列表。
lists = [['pdf', 'csv','txt'] for i in min(counter)]