我需要能够搜索一个字母并将其存储在两个不同的变量中。我找到的所有方法都可以成功找到值,但是他们没有提到有关坐标的任何信息。
TAP_CODE = [['A', 'B', 'C', 'D', 'E'],
['F', 'G', 'H', 'I', 'J'],
['L', 'M', 'N', 'O', 'P'],
['Q', 'R', 'S', 'T', 'U'],
['V', 'W', 'X', 'Y', 'Z']]
我们的想法是将坐标转换为由空格分隔的一串点,这些点用于指示抽头代码。例如:' .. ...'对于H,' .... ..'对于R
答案 0 :(得分:1)
如果您将TAP_CODE
变成numpy.ndarray
,这非常简单。然后,您可以使用np.where
查找坐标:
In [15]: TAP_CODE = np.array([['A', 'B', 'C', 'D', 'E'],
['F', 'G', 'H', 'I', 'J'],
['L', 'M', 'N', 'O', 'P'],
['Q', 'R', 'S', 'T', 'U'],
['V', 'W', 'X', 'Y', 'Z']])
In [16]: np.where(TC=='R')
Out[16]: (array([3]), array([1]))
答案 1 :(得分:0)
这是一种方法:
>>> TAP_CODE = [['A', 'B', 'C', 'D', 'E'],
['F', 'G', 'H', 'I', 'J'],
['L', 'M', 'N', 'O', 'P'],
['Q', 'R', 'S', 'T', 'U'],
['V', 'W', 'X', 'Y', 'Z']]
>>> def f(l, ch):
for i,sub_list in enumerate(l):
if ch in sub_list:
print ('.'*(i+1),' ', '.'*(sub_list.index(ch)+1))
>>> f(TAP_CODE, 'H')
.. ...
>>> f(TAP_CODE, 'R')
.... ..
答案 2 :(得分:0)
这是另一种方法:
def get_coordinates(letter):
for i in range(len(TAP_CODE)):
if letter in TAP_CODE[i]:
x = i
y = TAP_CODE[i].index(letter)
return x, y
>>> get_coordinates('M')
(2, 1)
如果您不想使用0作为索引,请在函数内添加+1
到x和y。
答案 3 :(得分:0)
我如何处理它......
在python 3.5中
def dots(matrix, target):
for i in range(len(matrix[0])):
for t in range(len(matrix[1])):
if TAP_CODE[i][t] == target:
coords = (i+1,t+1)
for i in range(coords[0]):
print('.', end="")
print(' ', end="")
for t in range(coords[1]):
print('.', end="")
dots(TAP_CODE, 'H')
输出
.. ...
也许不是最常见的 pythonic 方式,而是一种接近它的方式,而不会引入任何不必要的东西,我认为这样可以保持一致:^)
答案 4 :(得分:0)
您可以通过遍历TAP_CODE来完成此操作。为了这个例子,我们假设你正在搜索角色' H'。
desired = 'H'
xCord,yCord = -1,-1 # placeholder values
for y in range(len(TAP_CODE)): # traverse through all lists
for x in range(len(TAP_CODE[y]): # traverse through all elements in all lists
if(TAP_CODE[y][x] == desired): # if element is what I want
xCord, yCord = x,y
唯一的问题是,例如,如果我们搜索A'并且其坐标为(1,1),则返回(0,0),因为列表从0开始。您可以通过在找到它们之后向xCord和yCord添加1来解决这个问题。
xCord += 1
yCord += 1
如果您想将xCord和yCord转换为句点长度,可以使用:
example = 5
exampleString = "." * example
print(exampleString) -> "....."
我希望这有助于Plum教授。祝你好运!