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)