【问题标题】:Storing parts of string in Array in python在python中将部分字符串存储在数组中
【发布时间】:2013-05-08 08:33:25
【问题描述】:

我的字符串包含这样的大段落:

Line= "

      Name       =    AB    | 1-2 |      Name
      ID         =    CD    | 3-4 |      int
      Stu        =    EF    | 5-6 |      Name
      Email      =    GH    | 7-8 |      string
      ID         =    IJ    | 9-10 |     int
      Tea        =    KL    | 1--12 |    Name
      Email      =    MN    | 13-14 |    Name
      ID         =    OP    | 1-2 |      int "

我想将高于 ID 的信息存储到这样的数组中:

 A[0] = Name       =    AB    | 1-2 |      Name
 A[1] = Stu        =    EF    | 5-6 |      Name
        Email      =    GH    | 7-8 |      string
 A[2] = Tea        =    KL    | 1--12 |    Name
        Email      =    MN    | 13-14 |    Name

数组应该继续,因为我有更多的字符串数据,这个数组应该是自动组成的,有人可以帮忙吗?

【问题讨论】:

  • 我很确定,你的选择应该是dict

标签: python


【解决方案1】:

编辑:使用你的字符串。

注意:可能有一种更简洁的方法来做到这一点。

你可以使用正则表达式:

>>> import re
>>> Line = """

  Name       =    AB    | 1-2 |      Name
  ID         =    CD    | 3-4 |      int
  Stu        =    EF    | 5-6 |      Name
  Email      =    GH    | 7-8 |      string
  ID         =    IJ    | 9-10 |     int
  Tea        =    KL    | 1--12 |    Name
  Email      =    MN    | 13-14 |    Name
  ID         =    OP    | 1-2 |      int """
>>> Line = '\n'.join(i.lstrip() for i in Line.strip().splitlines())
>>> newlist = [i.strip('\n') for i in re.split(r'ID.*',Line)]
>>> print newlist[0]
Name       =    AB    | 1-2 |      Name
>>> print newlist[1]
Stu        =    EF    | 5-6 |      Name
Email      =    GH    | 7-8 |      string
>>> print newlist[2]
Tea        =    KL    | 1--12 |    Name
Email      =    MN    | 13-14 |    Name

【讨论】:

  • 打印newlist[1]时出错:列表索引超出范围
  • @hulk007 你一定是做错了什么,因为这也发生在 jamylak 的回答中。您是否完全复制了我的代码?
  • print newlist[0] 给了我整个字符串而没有改变
  • 我不明白你为什么要取 Line = """\,我没有这个,我有 line="
  • @hulk007 你有什么?问题中给出的代码不是有效的多行字符串
猜你喜欢
  • 1970-01-01
  • 2013-05-02
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
相关资源
最近更新 更多