小编use*_*869的帖子

迭代文本文件中的行,返回行号和出现次数?

我正在尝试编写这段代码,它可以作为排序的索引来筛选文本文件并返回字符串的出现次数以及它们所在的行。我越来越接近了,但是我的迭代遇到了问题,我不知道该怎么做。

def index(fileName, wordList):

    infile = open(fileName,'r')

    i = 0
    lineNumber = 0
    while True:
        for line in infile:
            lineNumber += 1
            if wordList[i] in line.split():
                print(wordList[i], lineNumber)
        i += 1
        lineNumber = 0

fileName = 'index.txt'
wordList = eval(input("Enter a list of words to search for: \n"))

index(fileName,wordList)
Run Code Online (Sandbox Code Playgroud)

我用通用术语填充了我的 .txt 文件,所以它看起来像这样:

bird 
bird 
dog 
cat 
bird
Run Code Online (Sandbox Code Playgroud)

当我提供一个字符串列表时,例如:

['bird','cat']
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

Enter a list of words to search for: 
['bird','cat']
bird 1
bird 2
bird 5
Run Code Online (Sandbox Code Playgroud)

所以它给了我列表中第一个字符串的术语和行号,但它没有继续到下一个字符串。有什么建议吗?如果我可以优化输出以将行号包含到单个打印中,那将不胜感激。

python string

5
推荐指数
1
解决办法
1万
查看次数

增加2d数组的值?

我正在尝试为我正在制作的游戏增加2d数组中的值,但我在每个数组中得到相同的值.这是代码:

def matrix(grid):

    nrows = len(grid)
    ncols = len(grid[0])

    for i in range(nrows):
        for j in range(ncols):
            grid[i][j] += 10

    for row in grid:
        print(row)

rows = 4
cols = 4
grid = [[0 for i in range(cols)] for i in range(rows)]
matrix(grid)
Run Code Online (Sandbox Code Playgroud)

输出是:

[10, 10, 10, 10]
[10, 10, 10, 10]
[10, 10, 10, 10]
[10, 10, 10, 10]
Run Code Online (Sandbox Code Playgroud)

我希望它在哪里

[10, 20, 30, 40]
[10, 20, 30, 40]
[10, 20, 30, 40]
[10, 20, 30, 40]
Run Code Online (Sandbox Code Playgroud)

另外,是否可以交错并使用两个嵌套的for循环来为每一行提供递增的值?如:

[10, 20, …
Run Code Online (Sandbox Code Playgroud)

python arrays list

0
推荐指数
1
解决办法
2580
查看次数

标签 统计

python ×2

arrays ×1

list ×1

string ×1