0
votes

Comment couper une liste et stocker en tant que liste multiple basée sur la condition Python

J'ai une liste de plus de 1000 cordes que j'aimerais trancher les listes dans les sublistes en fonction de la condition. Par exemple, j'ai une liste qui ressemble à. XXX PRE>

dans plusieurs sublistes. La condition de la tranchée est que combien de temps les mots se répètent comme des ensembles. Chaque subliste doit être augmenté avec un ensemble de tri, dans le cas réel, j'ai plus que 1000 chaînes. P>

afin que les résultats finaux ressemblent à p> xxx pré>

J'ai quelques chose comme ci-dessous qui donne une erreur. p>

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


0 commentaires

3 Réponses :


0
votes

Vous pouvez simplement compter le nombre d'occurrences, puis recréer la liste si vous en avez besoin.

lists = [['pdf', 'csv','txt'] for i in min(counter)]


2 commentaires

Salut cela donne une erreur disant que tuple objet ne prend pas en charge l'attribution d'élément @mahmut Asım Onat


Ok l'a changé pour la liste. Les tuples sont immuables.



0
votes

Vous pouvez utiliser un dictionnaire simple pour compter.

myDict = dict()
for s in my_list:
    if s in myDict:
       myDict[s] += 1
    else:
       myDict[s] = 1
lists = [['pdf', 'csv', 'txt'] for i in range(min(myDict.values()))]


3 commentaires

Cela donne une erreur disant que l'objet 'int' n'est pas iableérable.


J'ai ajouté une plage () pour résoudre cette erreur. Pouvez-vous expliquer à nouveau quelle sortie vous attendez-vous?


Je devrais avoir des listes imbriquées des ensembles.



1
votes

Essayez ceci, xxx

sortie: xxx

espère que cela vous aide!


5 commentaires

Cela ne donne pas la liste de tri imbriquée.


@DARSHANMAHALINGEGOWDA Il donne une liste imbriquée! Pouvez-vous expliquer comment votre liste doit être triée?


Comme vous l'avez donné la sortie, il devrait sembler identique à celui de cela, mais je reçois maintenant des listes plus imbriquées avec seulement [["CSV '], [" CSV "], [" CSV "], [" CSV'], [" CSV '], [' CSV '], [«CSV»]] en prenant votre exemple que je ne devrais obtenir que 4 séries de listes imbriquées, mais dans votre cas, sa donnez 8.


@Darshanmahalingegowda Quelle est votre liste que vous donnez au programme


La liste est la même que celle que j'ai posée en question mais en réalité, j'ai plus de 1000 chaînes dans une liste et je sais qu'il dispose de 5 ensembles avec 1000 cordes répétées uniquement pour que je ne puisse obtenir que 5 listes imbriquées. @Prathameh