创建元组列表的列表,其中每个元组是第一个出现的字母及其列表中的行和列

时间:2016-11-01 19:37:28

标签: python list python-3.x tuples

我需要编写一个函数来创建第一次出现的字母的元组列表,然后是列表列表中的行和列。

示例输入和输出:

#Input:

lot2    = [['.','M','M','H','H'],
           ['A','.','.','.','f'],
           ['B','C','D','.','f']]

#Output: [('M', 0, 1), ('H', 0, 3), ('f', 1, 4), ('B', 2, 0)]

正如您所看到的,该函数应该只查找第一个出现的字母而不是所有出现的字母。谢谢你的帮助。

代码:

letter = '.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
def list_cars(lst):
    for y, row in enumerate(lst):
        if letter in row:
            return letter, y, row.index(letter)

1 个答案:

答案 0 :(得分:0)

首先,使用字符串库获取所有大写和小写字母的字符串:

import string
string.ascii_letters
Out[40]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

collector = []
output_list = []
for i in lot2:
    for j in i:
        if j in string.ascii_letters and j not in collector:
            tmp = (j,lot2.index(i), i.index(j))
            output_list.append(tmp)
            collector.append(j)

output_list应该可以提供你想要的东西。

编辑:如果你想捕获全站点使用string.printable - 虽然这会给你一个字符串,其中包含额外的标点符号和空格字符。