🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
12 messages
12 total messages Started by Jeremiasz Kafelski Thu, 28 May 2009 20:35
dopasować
#26128
Author: Jeremiasz Kafelski
Date: Thu, 28 May 2009 20:35
8 lines
1029 bytes
Jak w czystym pythonie dopasować stringi?

mam dlugi string "abcdeefegr"

i kilka mniejszych ab bc abc ee e d f g r

jak zamienic ten dlugi na kolejne krotsze? 
czyli np. abc+d+ee+f+e+g+r
Re: dopasować
#26129
Author: Marek Wywiał
Date: Fri, 29 May 2009 06:54
13 lines
1615 bytes
On May 28, 10:35 pm, Jeremiasz Kafelski
<jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
> Jak w czystym pythonie dopasować stringi?
>
> mam dlugi string "abcdeefegr"
>
> i kilka mniejszych ab bc abc ee e d f g r
>
> jak zamienic ten dlugi na kolejne krotsze?
> czyli np. abc+d+ee+f+e+g+r

Pewnie można prościej, ale mi wyszło tak:
 * http://wklej.to/YcQs
Re: dopasować
#26130
Author: Marek Wywiał
Date: Fri, 29 May 2009 06:57
20 lines
1838 bytes
On May 29, 8:54 am, Marek Wywiał <onj...@gmail.com> wrote:
> On May 28, 10:35 pm, Jeremiasz Kafelski
>
> <jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
> > Jak w czystym pythonie dopasować stringi?
>
> > mam dlugi string "abcdeefegr"
>
> > i kilka mniejszych ab bc abc ee e d f g r
>
> > jak zamienic ten dlugi na kolejne krotsze?
> > czyli np. abc+d+ee+f+e+g+r
>
> Pewnie można prościej, ale mi wyszło tak:
>  *http://wklej.to/YcQs

dla bezpieczeństwa lepiej zamienić:
 * src = src.replace(part, '')
na
 * src = src.replace(part, '', 1)
Re: dopasować
#26139
Author: Radomir Dopieralski
Date: Fri, 29 May 2009 10:11
24 lines
1813 bytes
At Thu, 28 May 2009 22:35:51 +0200, Jeremiasz Kafelski wrote:

> Jak w czystym pythonie dopasować stringi?
>
> mam dlugi string "abcdeefegr"
>
> i kilka mniejszych ab bc abc ee e d f g r
>
> jak zamienic ten dlugi na kolejne krotsze? 
> czyli np. abc+d+ee+f+e+g+r

import re

input_string = "abdeefegr"

substrings = ["ab", "bc, "abc", "ee", "e", "d", "f", "g", "r"]
substr_pat = '|'.join(re.escape(s) for s in substrings)
substr_re = re.compile(substr_pat)
for match in substr_re.finditer(input_string):
    part = match.lastgroup()
    ...

-- 
Radomir Dopieralski, http://sheep.art.pl
Re: dopasować
#26131
Author: Jeremiasz Kafelski
Date: Fri, 29 May 2009 15:25
16 lines
1607 bytes
>> Pewnie można prościej, ale mi wyszło tak:
>> *http://wklej.to/YcQs
> 
> dla bezpieczeństwa lepiej zamienić:
>  * src = src.replace(part, '')
> na
>  * src = src.replace(part, '', 1)

A o to daje?

Jak dodam w stringu dane ktorych nie ma w przykladach to glupieje.
Ale dziala. I bardzo dziekuje. Ucze sie dopiero pythona i strasznie 
marnie mi idzie. Choc udalo mi sie w koncu napisac strone WWW. Teraz 
musze tylko napisac system komentarzy/ksiege gosci w django. Ale opisy 
sa jakies zakrecone deczko.
Re: dopasować
#26132
Author: Jeremiasz Kafelski
Date: Fri, 29 May 2009 15:28
4 lines
1063 bytes
Pospieszylem sie ;(
http://wklej.to/Rvum

nie dziala
Re: dopasować
#26133
Author: Marek Wywiał
Date: Fri, 29 May 2009 17:40
19 lines
2051 bytes
On May 29, 5:28 pm, Jeremiasz Kafelski
<jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
> Pospieszylem sie ;(http://wklej.to/Rvum
>
> nie dziala

nie wiem jakie masz konkretne założenia. w moim skrypcie założyłem, że
staram się dopasować kolejne kawałki, od największego do
najmniejszego, do początku ciągu. Gdy znajduję dopasowania skracam
ciąg o tę część.

W drugim przypadku dopasowanie zakończyło się po znalezieniu początku
abc, d, c i nie znalezieniu częsci pasującej do
 * wfjcfymhlqfopeefegr

napisz jakie masz wymagania co do algorytmu, lub zmodyfikuj go na
własne potrzeby :)

powodzenia
Re: dopasować
#26134
Author: Jeremiasz Kafelski
Date: Sat, 30 May 2009 07:15
27 lines
1825 bytes
Marek Wywiał wrote:

> On May 29, 5:28 pm, Jeremiasz Kafelski
> <jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
>> Pospieszylem sie ;(http://wklej.to/Rvum
>>
>> nie dziala
> 
> nie wiem jakie masz konkretne założenia. w moim skrypcie założyłem, 
że
> staram się dopasować kolejne kawałki, od największego do
> najmniejszego, do początku ciągu. Gdy znajduję dopasowania skracam
> ciąg o tę część.

Ale zobacz wynik

$ ./dop2.py
got: ['abc', 'dd', 'e', 'a', 'abc', 'd', 'cc', 'c', 'c', 'fe', 'e', 
'e', 'fe']
left: 

i dane
src = 'abcddeaabcdccccfeeefe'
parts = ['ab','bc','abc','ee','a','b','c','d','dd','cc','e','fe','g']


o dziwo nie dopasował cc i cc ale cc i c c
Re: dopasować
#26135
Author: Marek Wywiał
Date: Sat, 30 May 2009 12:17
30 lines
2494 bytes
On May 30, 9:15 am, Jeremiasz Kafelski
<jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
> Marek Wywiał wrote:
> > On May 29, 5:28 pm, Jeremiasz Kafelski
> > <jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
> >> Pospieszylem sie ;(http://wklej.to/Rvum
>
> >> nie dziala
>
> > nie wiem jakie masz konkretne założenia. w moim skrypcie założyłem,
> że
> > staram się dopasować kolejne kawałki, od największego do
> > najmniejszego, do początku ciągu. Gdy znajduję dopasowania skracam
> > ciąg o tę część.
>
> Ale zobacz wynik
>
> $ ./dop2.py
> got: ['abc', 'dd', 'e', 'a', 'abc', 'd', 'cc', 'c', 'c', 'fe', 'e',
> 'e', 'fe']
> left:
>
> i dane
> src = 'abcddeaabcdccccfeeefe'
> parts = ['ab','bc','abc','ee','a','b','c','d','dd','cc','e','fe','g']
>
> o dziwo nie dopasował cc i cc ale cc i c c

no tak, skrypt nie usuwa zużytych/dopasowanych parts,
trzeba by je usuwać, jeśli mają być użyte tylko raz
Re: dopasować
#26136
Author: Jeremiasz Kafelski
Date: Sat, 30 May 2009 15:55
39 lines
2398 bytes
Marek Wywiał wrote:

> On May 30, 9:15 am, Jeremiasz Kafelski
> <jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
>> Marek Wywiał wrote:
>> > On May 29, 5:28 pm, Jeremiasz Kafelski
>> > <jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
>> >> Pospieszylem sie ;(http://wklej.to/Rvum
>>
>> >> nie dziala
>>
>> > nie wiem jakie masz konkretne założenia. w moim skrypcie 
założyłem,
>> że
>> > staram się dopasować kolejne kawałki, od największego do
>> > najmniejszego, do początku ciągu. Gdy znajduję dopasowania skracam
>> > ciąg o tę część.
>>
>> Ale zobacz wynik
>>
>> $ ./dop2.py
>> got: ['abc', 'dd', 'e', 'a', 'abc', 'd', 'cc', 'c', 'c', 'fe', 'e',
>> 'e', 'fe']
>> left:
>>
>> i dane
>> src = 'abcddeaabcdccccfeeefe'
>> parts = 
['ab','bc','abc','ee','a','b','c','d','dd','cc','e','fe','g']
>>
>> o dziwo nie dopasował cc i cc ale cc i c c
> 
> no tak, skrypt nie usuwa zużytych/dopasowanych parts,
> trzeba by je usuwać, jeśli mają być użyte tylko raz

no nie. maja byc uzyte wlasnie wiele razy. Albo ja nie rozumiem.
w got: nie mam dwoch 'cc' i 'cc' a powinno byc.

To w takim razie gdzie jest wynik?
Re: dopasować
#26137
Author: Marek Wywiał
Date: Sun, 31 May 2009 11:49
49 lines
3260 bytes
On May 30, 5:55 pm, Jeremiasz Kafelski
<jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
> Marek Wywiał wrote:
> > On May 30, 9:15 am, Jeremiasz Kafelski
> > <jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
> >> Marek Wywiał wrote:
> >> > On May 29, 5:28 pm, Jeremiasz Kafelski
> >> > <jjjjjjjjjjjjjjjjj...@jggjjj.pl> wrote:
> >> >> Pospieszylem sie ;(http://wklej.to/Rvum
>
> >> >> nie dziala
>
> >> > nie wiem jakie masz konkretne założenia. w moim skrypcie
> założyłem,
> >> że
> >> > staram się dopasować kolejne kawałki, od największego do
> >> > najmniejszego, do początku ciągu. Gdy znajduję dopasowania skracam
> >> > ciąg o tę część.
>
> >> Ale zobacz wynik
>
> >> $ ./dop2.py
> >> got: ['abc', 'dd', 'e', 'a', 'abc', 'd', 'cc', 'c', 'c', 'fe', 'e',
> >> 'e', 'fe']
> >> left:
>
> >> i dane
> >> src = 'abcddeaabcdccccfeeefe'
> >> parts =
>
> ['ab','bc','abc','ee','a','b','c','d','dd','cc','e','fe','g']
>
>
>
> >> o dziwo nie dopasował cc i cc ale cc i c c
>
> > no tak, skrypt nie usuwa zużytych/dopasowanych parts,
> > trzeba by je usuwać, jeśli mają być użyte tylko raz
>
> no nie. maja byc uzyte wlasnie wiele razy. Albo ja nie rozumiem.
> w got: nie mam dwoch 'cc' i 'cc' a powinno byc.
>
> To w takim razie gdzie jest wynik?

znalazł 'cc' w 'cccc...'
potem następny part 'c' w 'cc..'
i zostało 'c...'
więc w następnej iteracji już tylko 'c' pasowało,
musiałbyć po każdym dopasowaniu restartować pętlę
Re: dopasować
#26138
Author: Jeremiasz Kafelski
Date: Mon, 01 Jun 2009 05:12
13 lines
1785 bytes
>> no nie. maja byc uzyte wlasnie wiele razy. Albo ja nie rozumiem.
>> w got: nie mam dwoch 'cc' i 'cc' a powinno byc.
>>
>> To w takim razie gdzie jest wynik?
> 
> znalazł 'cc' w 'cccc...'
> potem następny part 'c' w 'cc..'
> i zostało 'c...'
> więc w następnej iteracji już tylko 'c' pasowało,
> musiałbyć po każdym dopasowaniu restartować pętlę

A jak to zrobić? aby za kazdym razem dopasowywal do najdluzszego ciagu.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads