Portál AbcLinuxu, 10. května 2025 04:10

Dotaz: python - tranformace retezce

19.4.2012 09:32 Maja
python - tranformace retezce
Přečteno: 253×
Odpovědět | Admin
Ahojte, jak muzu prosim v Pythonu nejjednoduseji upravit libovolny retezec sude delky tak, ze za kazde dva znaky pridam dvojtecku (krome dvou poslednich znaku).

Tedy z retezce
79c2b46ce2594ecbcb5b73e928345492
udelam
79:c2:b4:6c:e2:59:4e:cb:cb:5b:73:e9:28:34:54:92

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.4.2012 10:11 wr
Rozbalit Rozbalit vše Re: python - tranformace retezce
Odpovědět | | Sbalit | Link | Blokovat | Admin
co treba takhle:

l = "79c2b46ce2594ecbcb5b73e928345492"
print(':'.join([''.join(c) for c in zip(*[list(l[z::2]) for z in range(2)])]))


F#ck PHP, Python RULEZ!
19.4.2012 10:15 wr
Rozbalit Rozbalit vše Re: python - tranformace retezce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebo o neco jednoduseji:

l = "79c2b46ce2594ecbcb5b73e928345492"
print(":".join([l[i:i+2] for i in range(0, len(l), 2)]))
wamba avatar 19.4.2012 12:15 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: python - tranformace retezce
Odpovědět | | Sbalit | Link | Blokovat | Admin
import re
print(":".join(re.findall("..","79c2b46ce2594ecbcb5b73e928345492")))
nebo
import struct
print(":".join(struct.unpack('2s'*16,'79c2b46ce2594ecbcb5b73e928345492')))
This would have been so hard to fix when you don't know that there is in fact an easy fix.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.