Python 解析自定义字符串

Python 解析自定义字符串,python,parsing,Python,Parsing,我在字母汤中工作,我需要解析如下字符串: A1 A10 A10 B14 C1 C14 C14 C8 其中字母可以是A到T,数字可以是1到20 一般来说,我的想法是得到这样的东西(使用A1 A10) 也许有什么想法或代码?非常简单 使用函数transform your alphabet soup,然后通过直接访问单个元素进一步拆分它们 例如: text = ''' A1 A10 A10 B14 C1 C14 C14 C8 ''' for t in text.split(): pr

我在字母汤中工作,我需要解析如下字符串:

A1 A10

A10 B14

C1 C14

C14 C8
其中字母可以是A到T,数字可以是1到20

一般来说,我的想法是得到这样的东西(使用A1 A10)

也许有什么想法或代码?

非常简单

使用函数transform your alphabet soup,然后通过直接访问单个元素进一步拆分它们

例如:

text = '''
A1 A10
A10 B14
C1 C14
C14 C8
'''

for t in text.split():
    print(
        {t[0]: t[1:]}
    )
印刷品:

{'A': '1'}
{'A': '10'}
{'A': '10'}
{'B': '14'}
{'C': '1'}
{'C': '14'}
{'C': '14'}
{'C': '8'}
好吧,我解决了这个问题(我想目前是可行的!),也许不是最好的方法,但这是我用我的知识所能做到的唯一方法。任何更好的想法都会被接受!(请注意,如果您阅读此文章是因为您需要类似的内容,我之所以发布此文章是因为这是我知道的唯一方法,也许有人希望发布更好的代码!)

思想基础是接收字符串“a[1-20]B[1-20]”a和B可以是从a到T的任意字母,存储每个拆分的单词以访问它: 例:“A14 B16”

[0]=“A”

[1] =“14”

[2] =“B”

[3] =“16”


对不起,如果我表达错误,没有人理解我

你想达到什么目的?你所说的“解析”到底是什么意思?您试图检索什么信息?为什么要跳过索引?我会使用
字典
试试正则表达式。沿着/[A-T](2位)/的线来给你一个大致的想法。您当前的解决方案很弱,因为它首先假设每一行都是一个完整的字符串,并且没有考虑所有数字的可能性。“我已经写了很多想法”-很好!为什么不在你的问题中提到其中一些呢?“你认为如果我没有写任何代码,我会来这里问你吗?”-不幸的是,很多人都写了。那么代码在哪里,它到底有什么问题?“如果你不帮忙种植,请跳过这一步”-没有骰子,对不起。请阅读3年后,是的,3年后,我意识到这可以很容易地用正则表达式来完成,当时的内容对我来说很遥远。
{'A': '1'}
{'A': '10'}
{'A': '10'}
{'B': '14'}
{'C': '1'}
{'C': '14'}
{'C': '14'}
{'C': '8'}
fila = preguntar_coordenadas[0]
desde = int(preguntar_coordenadas[1])
if preguntar_coordenadas[2].isdigit():
    desde = int("{0}   {1}".format(preguntar_coordenadas[1],preguntar_coordenadas[2]))
if preguntar_coordenadas[3].isalpha():
    columna = preguntar_coordenadas[3]
    if len(preguntar_coordenadas) == 5:
        hasta = int(preguntar_coordenadas[4])
    else:
        hasta = int("{0}{1}".format(preguntar_coordenadas[4],preguntar_coordenadas[5]))
 else:
columna = preguntar_coordenadas[4]
if len(preguntar_coordenadas) == 6:
    hasta = int(preguntar_coordenadas[5])
else:
    hasta = int("{0}{1}".format(preguntar_coordenadas[5],preguntar_coordenadas[6]))
 #DEBUG
 print "fila {0} ; columna {1} ; desde {2} ; hasta {3}".format(fila,columna,desde,hasta)