web-dev-qa-db-fra.com

Comment puis-je scinder cette chaîne délimitée par des virgules en Python?

Salut, j'ai lu sur les expressions régulières, j'ai quelques bases de travail. J'essaie maintenant d'utiliser Re pour trier des données comme celle-ci:

"144,1231693144,26959535291011309493156476344723991336010898738574164086137773096960,26959535291011309493156476344723991336010898738574164086137773096960,1.00,4295032833,1563,2747941288,1231823695,26959535291011309493156476344723991336010898738574164086137773096960,26959535291011309493156476344723991336010898738574164086137773096960,1.00,4295032833,909,4725008"

... dans un tuple mais je ne peux pas le faire fonctionner.

Quelqu'un peut-il expliquer comment ils s'y prendraient? 

Merci

10
freeload247

Vous ne voulez pas d'expressions régulières ici.

s = "144,1231693144,26959535291011309493156476344723991336010898738574164086137773096960,26959535291011309493156476344723991336010898738574164086137773096960,1.00,4295032833,1563,2747941 288,1231823695,26959535291011309493156476344723991336010898738574164086137773096960,26959535291011309493156476344723991336010898738574164086137773096960,1.00,4295032833,909,4725008"

print s.split(',')

Vous donne:

['144', '1231693144', '26959535291011309493156476344723991336010898738574164086137773096960', '26959535291011309493156476344723991336010898738574164086137773096960', '1.00
', '4295032833', '1563', '2747941 288', '1231823695', '26959535291011309493156476344723991336010898738574164086137773096960', '26959535291011309493156476344723991336010898
738574164086137773096960', '1.00', '4295032833', '909', '4725008']
41
Acorn

Que diriez-vous d'une liste? 

mystring.split(",")

Cela pourrait aider si vous pouviez expliquer quel type d’informations nous examinons. Peut-être quelques informations de fond aussi?

MODIFIER: 

J'ai pensé que vous voudriez peut-être l'info par groupes de deux?

alors essaye:

re.split(r"\d*,\d*", mystring)

et aussi si vous les voulez en tuples

[(pair[0], pair[1]) for match in re.split(r"\d*,\d*", mystring) for pair in match.split(",")]

sous une forme plus lisible:

mylist = []
for match in re.split(r"\d*,\d*", mystring):
    for pair in match.split(",")
        mylist.append((pair[0], pair[1]))
8
James Khoury

La question est un peu vague.

list_of_lines = multiple_lines.split("\n")
for line in list_of_lines:
    list_of_items_in_line = line.split(",")
    first_int = int(list_of_items_in_line[0])

etc.

1
elliot42