【问题标题】:I was able to search for the word and print the grid with dots and word but there is a extra line of dots in printing after it我能够搜索单词并打印带有点和单词的网格,但是在它之后打印了一行额外的点
【发布时间】:2021-02-09 18:41:10
【问题描述】:

我有一个字母网格的文本文件,我必须从中找到一个单词 比如

odsdsnslryy

ecajjgigqgy

fqlzfbzedme

wqogkvatqjh

lsjmvdkmqlu

rhnrbzrnfcg

euxwmyleqei

ezzamtwmgst

例子jpzh

fkhygikqjuc

igzynopmxrc

faexqjljvom

wtxtehloipx

例子

我必须从网格中找到单词example,并用诸如此类的单词重新打印网格

我编写的代码能够打印它,但是带有 word 的行后面的点行在旁边打印,而不是在行完成后打印。

我写的代码

row_num = len(grid)
col_num = len(grid[0])
for elem in grid:
    for word in words:
        if word not in elem:
            print(col_num * '.')
        else:
            len_word = len(word)
            for i in range(len(elem)):
                if elem[i:len_word] == word:
                    print(word, end = '')
                else:
                    print('.', end = '')

它的打印是

如果我想从右到左搜索单词,请告诉我需要做哪些更改

【问题讨论】:

    标签: python-3.x loops


    【解决方案1】:

    这是你想要的吗? sample.txt 是从您的问题中按原样复制的单词的“网格”。

    with open("sample.txt") as f:
        word = "example"
        lines = [l.strip() for l in f.readlines()]
        longest_line = len(max(lines))
    
        grid = "\n".join(
            "." * len(line) if word not in line
            else f"{word}{'.' * (longest_line - len(word))}"
            for line in lines
        )
    
        print(grid)
    

    输出:

    ...........
    
    ...........
    
    ...........
    
    ...........
    
    ...........
    
    ...........
    
    ...........
    
    ...........
    
    example....
    
    ...........
    
    ...........
    
    ...........
    
    ...........
    
    

    【讨论】:

    • 你能检查一下我在代码中做错了什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2020-06-29
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多