該函式將一個正方形作為引數,它必須計算它周圍有多少個字母 N:s。我認為它需要在正確范圍內進行兩個 for 回圈,但我堅持如何設定計數字母的邊界。如果給定的正方形在一個字母上,它也被計算在內。
room = [['N', ' ', ' ', ' ', ' '],
['N', 'N', 'N', 'N', ' '],
['N', ' ', 'N', ' ', ' '],
['N', 'N', 'N', ' ', ' '],
[' ', ' ', ' ', ' ', ' '],
[' ', ' ', ' ', ' ', ' ']]
def count_n(x, y, room):
for y in range(y, len(room)):
#print(y)
for x in range(x, len(room[y])):
#print(x)
if x == "N":
n=n 1
return n
uj5u.com熱心網友回復:
如果“around”表示 8 個鄰居和單元格本身,則可以執行以下操作:
def count_n(x, y, room):
x_lo, x_hi = max(x-1, 0), min(x 2, len(room))
y_lo, y_hi = max(y-1, 0), min(y 2, len(room[x]))
n = 0
for row in room[x_lo:x_hi]:
for val in row[y_lo:y_hi]:
if val == "N":
n = n 1
return n
這可以縮短:
def count_n(x, y, room):
x_lo, x_hi = max(x-1, 0), min(x 2, len(room))
y_lo, y_hi = max(y-1, 0), min(y 2, len(room[x]))
return sum(val == "N" for row in room[x_lo:x_hi] for val in row[y_lo:y_hi])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/339429.html
上一篇:python:元組搜索串列
