【问题标题】:How to seperate characters in a string from a textfile, Python 3如何从文本文件中分离字符串中的字符,Python 3
【发布时间】:2013-11-05 14:43:02
【问题描述】:

我需要帮助,我应该将文本文件转换为字典。问题是文本文件只是一行我想要分隔的多个字符。

这是文本文件:

A2.-B4-...C4-.-.D3-..E1.F4..-.G3--.H4....I2..J4.---
K3-.-L4.-..M2--N2-.O3---P4.--.Q4--.-R3.-.S3...T1-
U3..-V4...-W3.--X4-..-Y4-.--Z4--..Å5.--.-Ä4.-.-
Ö4---.15.----25..---35...--45....-55.....65-....
75--...85---..95----.05-----.6.-.-.-,6--..--?6..--..!5..--.

该行中没有空格!我想要这种格式的字典中的文件:

'A': '.-'
'B': '-...'

等等……

我想我可以检查文件中的数字。如果我遇到一个,我想检查它后面是否有数字。 'A2.-15.----'

如果后面没有数字: 然后我想将数字前面的字符存储为“键”,并且我想在数字后面存储与数字本身相同数量的字符作为“值”。 'A' = '.-'

如果有: 我想将第一个数字存储为“值”,然后存储与下一个数字相同数量的字符(数字后面的字符)

'1': '.----'

问题在于整行是列表中的一个元素(也是唯一一个)。所以我不能使用索引在字符串中移动。 到目前为止,这是我的代码:

file = open('morse.d.txt')
s = file.read()
l = s.split()
element = l[0]

for char in element:
    if char.isdigit():
        #Check the character after

【问题讨论】:

    标签: python string dictionary text-files python-3.2


    【解决方案1】:

    您可以使用正则表达式来完成这项工作:

    In [1]: import re
    
    In [2]: s="""
       ...: A2.-B4-...C4-.-.D3-..E1.F4..-.G3--.H4....I2..J4.---
       ...: K3-.-L4.-..M2--N2-.O3---P4.--.Q4--.-R3.-.S3...T1-
       ...: U3..-V4...-W3.--X4-..-Y4-.--Z4--..Å5.--.-Ä4.-.-
       ...: Ö4---.15.----25..---35...--45....-55.....65-....
       ...: 75--...85---..95----.05-----.6.-.-.-,6--..--?6..--..!5..--."""
    
    In [3]: re.findall("([^\.-]+)([\.-]+)", s)
    Out[3]: 
    [('A2', '.-'),
     ('B4', '-...'),
     ('C4', '-.-.'),
     ('D3', '-..'),
    ...
     ('6', '.-.-.-'),
     (',6', '--..--'),
     ('?6', '..--..'),
     ('!5', '..--.')]
    

    然后将结果传递给dict 以获取字典。

    【讨论】:

    • 这实际上行不通。因为您没有使用字符数,只是吞噬.-,当.,定义时,您会遇到麻烦,因为它已分配给前一个钥匙。例如,看看为什么你有一个'6' 键。
    猜你喜欢
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多