Python字符串拆分线

2024-04-19 11:43:48 发布

您现在位置:Python中文网/ 问答频道 /正文

add_numbers( "A1", "Element 560234 65952 6598881 20203256 2165883 659562 654981 24120 261240 31648948 23900 5512400 5512900 5612400 5612900" )

add_numbers( "A2", "Element 261240 31659 5612400 76803256 3165883 659863 654224 44120 261240 31648948 23900 3612200 9512900 5612400 5642924" )

add_numbers( "A3", "Element 841225 65952 2165883 63103256 2165883 644861 344966 84120 161540 31653948 23900 5513426 5518906 5682405 8682932" )

我想要一个字典(从上面的字符串中,它是一个txt文件)如下所示:

^{pr2}$

你有什么想法吗?我怎样才能做到这一点?谢谢您。在


Tags: 文件字符串txtadda2字典a1element
2条回答
import re,ast
def add_numbers(d,key,elements): #we pass in a reference to a dict, which we update
    d[key] = map(int,elements.split()[1:]) #Returns ["Element",...], so we select all but first [1:]
dic = {}
with open('file.txt') as f:
    for line in f:
        key,elems = ast.literal_eval(re.search(r'\((.+)\)',line).group(0))
        add_numbers(dic,key,elems)

生产

^{pr2}$

明白你现在想处理这个

add_numbers( "A1", "Element 560234 65952 6598881 20203256 2165883 659562 654981 24120 261240 31648948 23900 5512400 5512900 5612400 5612900" )

add_numbers( "A2", "Element 261240 31659 5612400 76803256 3165883 659863 654224 44120 261240 31648948 23900 3612200 9512900 5612400 5642924" )

add_numbers( "A3", "Element 841225 65952 2165883 63103256 2165883 644861 344966 84120 161540 31653948 23900 5513426 5518906 5682405 8682932" )

将文本文件的文字内容放入字典,我会这样做:

^{pr2}$

正则表达式"([^"]*)"的说明:

  • "( )"匹配引号内的内容
  • [^"]*不是"的任何0个或更多字符的字符串

re.findall将以列表形式返回结果。在

编辑

I get an error. ValueError: need more than 1 value to unpack

文件中必须有一行不包含两对双引号。我已经更新了上面的代码以忽略与您的规范不匹配的行。在

相关问题 更多 >