📜  Python - 矩阵中的字符坐标

📅  最后修改于: 2022-05-13 01:55:41.293000             🧑  作者: Mango

Python - 矩阵中的字符坐标

有时,在处理Python数据时,我们可能会遇到需要提取 Matrix 中的所有坐标(即字符)的问题。这类问题可能在 Web 开发和日常编程等领域有潜在的应用。让我们讨论可以执行此任务的某些方式。

方法 #1:使用enumerate() + list comprehension + isalpha()
上述功能的组合可以用来解决这个问题。在此,我们使用 enumerate 执行使用索引的任务,并且使用 isalpha() 完成字符过滤。

# Python3 code to demonstrate working of 
# Character coordinates in Matrix
# Using enumerate() + list comprehension + isalpha()
          
# initializing list
test_list = ['23f45.;4d', '5678d56d', '789', '5678g']
  
# printing original list
print("The original list is : " + str(test_list))
  
# Character coordinates in Matrix
# Using enumerate() + list comprehension + isalpha()
res = [(x, y) for x, val in enumerate(test_list) 
        for y, chr in enumerate(val) if chr.isalpha()]  
  
# printing result 
print("Character indices : " + str(res)) 
输出 :
The original list is : ['23f45.;4d', '5678d56d', '789', '5678g']
Character indices : [(0, 2), (0, 8), (1, 4), (1, 7), (3, 4)]

方法 #2:使用regex() + 循环
上述功能的组合可以用来解决这个问题。在此,我们使用正则表达式执行过滤字母的任务。只返回每个字符串中第一次出现的字符。

# Python3 code to demonstrate working of 
# Character coordinates in Matrix
# Using regex() + loop
import re
          
# initializing list
test_list = ['23f45.;4d', '5678d56d', '789', '5678g']
  
# printing original list
print("The original list is : " + str(test_list))
  
# Character coordinates in Matrix
# Using regex() + loop
res = []
for key, val in enumerate(test_list):
    temp = re.search('([a-zA-Z]+)', val)
    if temp :
        res.append((key, temp.start()))
          
# printing result 
print("Character indices : " + str(res)) 
输出 :
The original list is : ['23f45.;4d', '5678d56d', '789', '5678g']
Character indices : [(0, 2), (1, 4), (3, 4)]