Sélection d'éléments dans une liste commençant par un format de chaîne particulier

mesurer_theory

Ce que j'ai : une liste détaillée que j'ai obtenue en supprimant un PDF, mais certains éléments de la liste sont mal répartis entre les éléments adjacents de la liste

A = ["1. 100 Test.1; 200 Test.2; 300 ", 
     "Test.3; 400 Test.4", 
     "2. 500 Test.5; 600 Test.6;", 
     "3. 700 Test.7; 800 Test.8; ", 
     "900 Test.9; 1000 Test.10"]

Ce dont j'ai besoin : une liste commençant par les éléments 1., 2., 3., etc. et pour ajouter les autres éléments de la liste à l'élément précédent de la liste:

B = ["1. 100 Test.1; 200 Test.2; 300 Test.3; 400 Test.4", 
     "2. 500 Test.5; 600 Test.6;", 
     "3. 700 Test.7; 800 Test.8; 900 Test.9; 1000 Test.10"]

Ce que j'ai essayé : ce que j'espère, c'est un moyen d'identifier les éléments de la liste qui ont le format "XX" mais je n'ai pas eu beaucoup de chance. J'ai écrit une boucle qui identifie si l'élément de la liste commence par un entier, mais cela ne m'aide pas dans des cas comme le dernier élément de la liste A. Toute aide est appréciée.

ohthatgeoff

Cette solution combine la liste en une seule chaîne de texte puis utilise re.split () afin de trouver le modèle xx à fractionner.

import re
import pprint

A = ["1. 100 Test.1; 200 Test.2; 300 ",
     "Test.3; 400 Test.4",
     "2. 500 Test.5; 600 Test.6;",
     "3. 700 Test.7; 800 Test.8; ",
     "900 Test.9; 1000 Test.10"]

# Combine list into a single string
text = "".join(A)

# Split the string into list elements based on desired pattern
lines = re.split(r'(\d\.\s)', text)

# Remove any blank lines
lines = [l for l in lines if l.strip()]

# Combine the line numbers and their matching strings back together
numbered_lines = []
for i in range(0, len(lines), 2):
    numbered_lines.append(lines[i] + lines[i+1])

# Print the results
pprint.pprint(numbered_lines)

Production:

❯ python main.py
['1. 100 Test.1; 200 Test.2; 300 Test.3; 400 Test.4',
 '2. 500 Test.5; 600 Test.6;',
 '3. 700 Test.7; 800 Test.8; 900 Test.9; 1000 Test.10']

Mise à jour: Ajout d'un groupe de capture à regex afin de conserver les numéros de ligne

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    J'ai besoin de savoir si ces deux phrases sont les mêmes en programmation

  2. 2

    Javascript indiquant "impossible de définir la propriété 'innerHTML' sur null"

  3. 3

    Nextcloud avec Docker: impossible de créer ou d'écrire dans le répertoire de données

  4. 4

    La taille de la forme n'est pas égale à la taille de la cellule du tableau et ajuste le texte à l'intérieur de la forme

  5. 5

    Trouver l'intersection et l'union de deux rectangles

  6. 6

    Comment changer la couleur de la police dans R?

  7. 7

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  8. 8

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  9. 9

    Compter combien de fois un nombre apparaît dans un tableau aléatoire

  10. 10

    Pourquoi utiliser Asyncio ne réduit pas le temps d'exécution global en Python et n'exécute pas les fonctions simultanément?

  11. 11

    Comment convertir une chaîne en tuple en utilisant `reads`?

  12. 12

    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

  13. 13

    comment afficher un bouton au-dessus d'un autre élément ?

  14. 14

    Création d'un nouvel objet d'une classe avec un nouveau nom en cliquant sur un bouton dans java swing

  15. 15

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  16. 16

    Restauration de la sauvegarde de la base de données SQL Server sur la version inférieure

  17. 17

    Créer un graphique à barres avec une fréquence relative / à partir d'un objet de table dans R

  18. 18

    Création d'un rappel python pour une fonction C à partir d'une DLL avec un tampon char.

  19. 19

    java.lang.NoClassDefFoundError: org / springframework / data / repository / config / BootstrapMode

  20. 20

    comment le contrôle de tableau javascript devrait-il être

  21. 21

    impossible d'ouvrir un nouvel onglet dans react, ajoute localhost: 3000 sur le lien?

chaudétiquette

Archive