如何根据条件python分割列表并存储为多个列表

问题描述 投票:0回答:1

我有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)))

有人可以帮我解决这个问题吗?

谢谢!

python python-3.x list slice
1个回答
0
投票

您可以简单地计算出现的次数,然后在需要时重新创建列表。

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)]
© www.soinside.com 2019 - 2024. All rights reserved.