0
votes

Comment ajouter des décimales après tous les 3 chiffres à partir du côté droit dans une liste ayant un tuple de chiffres?

J'ai une liste d'avoir des tuples. Je veux mettre un point décimal entre tous les 3 chiffres de tuple à partir de droite.

entrée: p> xxx pré>

sortie: p>

[(172.031.028.000, 171.031.011.000), (10.010.043.016, 171.031.011.111), (172.031.028.011, 172.031.031.121)]


1 commentaires

Merci à tous pour une réponse rapide. Toutes les solutions sont utiles.


5 Réponses :


3
votes

C'est une approche.

ex: xxx

sortie: xxx


0 commentaires

1
votes

SE ITERER sur chaque tuple, puis chaque IP. Vous avez les sections à droite pour la propriété intellectuelle afin d'ajouter à une liste temporaire que vous lancerez vers TUPLE (comme les tuples sont immuables afin que vous ne puissiez pas modifier ce que vous avez déjà) xxx


0 commentaires

1
votes

Une version possible avec RE Module: xxx

impression: xxx


0 commentaires

1
votes

Ceci est ma prise:

data = [(172031028000, 171031011000), (10010043016, 171031011111), (172031028011, 172031031121)]

# Add the dots to the IP
def proc_ip(a: int):
    a = str(a)
    return f'{a[:3]}.{a[3:6]}.{a[6:9]}.{a[9:]}'

# Add the dots to both ips on the tuple
def proc_tuple(a: tuple):
    return (proc_ip(a[0]), proc_ip(a[1]))

# Process each tuple
result = [proc_tuple(elem) for elem in data]

print(result)


0 commentaires

1
votes
>>> def convert(num):
...    num = str(num)
...    return  '{}.{}.{}.{}'.format(int(num[:-9]), int(num[-9:-6]), int(num[-6:-3]), int(num[-3:]))
... 
>>> input_list = [(172031028000, 171031011000), (10010043016, 171031011111), (172031028011, 172031031121)]
>>> 
>>> output_list = [(convert(num1), convert(num2)) for num1, num2 in input_list]
>>> print(output_list)
[('172.31.28.0', '171.31.11.0'), ('10.10.43.16', '171.31.11.111'), ('172.31.28.11', '172.31.31.121')]
>>> 

0 commentaires