Anonymní profil rontorto – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil rontorto – Programujte.comAnonymní profil rontorto – Programujte.com

 

Příspěvky odeslané z IP adresy 2a02:8308:23d:fb00:86b:242f:3dc2:9b38...–

rontorto
Python › osmisměrka
19. 11. 2019   #384727

#2 gna
 

import sys
words = []
s_b = ''
z = input().split()
file_input = z[0]
file_inputs = z[1]
with open(file_inputs) as file:
    for line in file:
        line = line.replace('\n', '')
        line = line.lower()
        words.append(line)
with open(file_inputs) as file:
    for line in file:
        if len(line) > 6:
            line = line.lower()
            s_b += line
length = s_b.index('\n') + 1
lines = {}
lines["1"] = []
letts = [(lett, divmod(index, length))
            for index, lett in enumerate(s_b)]
lines['0'] = letts

for word in words:
    for dir, tple in lines.items():
        for i in range(length):
            for j in range(i, len(letts), length):
                lines["1"].append(letts[j])
                string = ''.join([i[0] for i in tple])
        if word in string:
            coord = tple[string.index(word)][1]
            print(coord[0], coord[1], dir)

takto to funguje. .a nějaký způsob na zrychlení?

rontorto
Python › osmisměrka
19. 11. 2019   #384717

Ahoj,Mám problém, dělám na osmisměrce, vstupem jsou 2 soubory na řádce
v jednom je osmisměrka, v druhém slova, které má program najít
výstupem má být slovo, souřadnice, kde slovo začíná a směr(shora nebo zleva), všechno funguje, jenže potřebuji,aby se slova vypisovala v pořadí, v jakém jsou napsána v souboru číslo 2

soubor s osmisměrkou:
 

xmuinjekci
evelkochov
cadvouhrac
feminizaci
pyzlanpbik
ldvojlinky
osvrhloubd
dqldrvandy
yevergreen
olympskout


soubor se slovy:

dvojlinky
feminizaci
velkochov
dvouhra
olympskou
plody
dyn
rab
svrhlou
np
jo
lordem
velko
injekci
skout
mva
vandy
dvou
evergreen
ech
zla
kb
un
hrr
aj
ona


zdroják

def find_words(file_inputs, words):
    with open(file_inputs) as file:
        for line in file:
            line = line.replace('\n', '')
            line = line.lower()
            words.append(line)

def get_search_board(file_inputs, search_board):
    with open(file_inputs) as file:
        for line in file:
            if len(line) > 6:
                line = line.lower()
                search_board += line
    length = search_board.index('\n') + 1
    return search_board, length

def main():
    words = []
    search_board = ''
    z = input().split()
    file_input = z[0]
    file_inputs = z[1]
    find_words(file_inputs, words)
    search_board, length = get_search_board(file_input, search_board)
    lines = {}

    lines["1"] = []

    letters = [(letter, divmod(index, length))
               for index, letter in enumerate(search_board)]

    lines['0'] = letters

    for i in range(length):
            for j in range(i, len(letters), length):
                lines["1"].append(letters[j])

    for direction, tuple in lines.items():
        string = ''.join([i[0] for i in tuple])
        for word in words:
            if word in string:
                coordinates = tuple[string.index(word)][1]
                print(word,coordinates[0], coordinates[1], direction)

main()

výstup:

plody 4 0 1
dyn 6 9 1
rab 2 7 1
jo 0 5 1
lordem 4 3 1
mva 0 1 1
ech 0 6 1
kb 5 8 1
un 6 7 1
hrr 6 4 1
aj 4 4 1
ona 2 4 1
dvojlinky 5 1 0
feminizaci 3 0 0
velkochov 1 1 0
dvouhra 2 2 0
olympskou 9 0 0
svrhlou 6 1 0
np 4 5 0
velko 1 1 0
injekci 0 3 0
skout 9 5 0
vandy 7 5 0
dvou 2 2 0
evergreen 8 1 0
zla 4 2 0


ale potřeboval bych tento výstup:

dvojlinky 5 1 0
feminizaci 3 0 0
velkochov 1 1 0
dvouhra 2 2 0
olympskou 9 0 0
plody 4 0 1
dyn 6 9 1
rab 2 7 1
svrhlou 6 9 0
np 4 5 0
jo 0 5 1
lordem 4 3 1
velko 1 1 0
injekci 0 3 0
skout 9 5 0
mva 0 1 1
vandy 7 5 0
dvou 2 2 0
evergreen 8 1 0
ech 0 6 1
zla 4 2 0
kb 5 8 1
un 6 7 1
hrr 6 4 1
aj 4 4 1
ona 2 4 1


Díky za pomoc

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý