我正在尝试编写这段代码,它可以作为排序的索引来筛选文本文件并返回字符串的出现次数以及它们所在的行。我越来越接近了,但是我的迭代遇到了问题,我不知道该怎么做。
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)
所以它给了我列表中第一个字符串的术语和行号,但它没有继续到下一个字符串。有什么建议吗?如果我可以优化输出以将行号包含到单个打印中,那将不胜感激。
我正在尝试为我正在制作的游戏增加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)