【问题标题】:File in a list and then split every term in the list, python归档在列表中,然后拆分列表中的每个术语,python
【发布时间】:2013-06-18 19:28:14
【问题描述】:

我有一个文件,其中包含以下内容:

IA45,TA43,WB58,AB71 ... etc

我想把这个词转换成一个列表,比如:

["IA45","TA43","WB58","AB71" .....]

然后,我想使用这个列表一个接一个地取出单词并拆分并将第一个字母、第二个字母和数字作为分隔变量。 我有:

with open("IRL.txt", "r") as f:
    resid_list = [x.split(',') for x in f.readlines()]
    for r in resid_list:
        chain = list(r)[1]
        print chain
        res = list(r)[0]
        print res
        num = list(r)[2:]
        num1 = "".join(num)
        res_num = res+num1
        print res_num+" "+chain

问题出在 for 循环中。当我打印“链”时,它只给了我第二个词,没有别的 ---> TA43

但我想打印 --- A

【问题讨论】:

    标签: python list split words


    【解决方案1】:

    我认为您想要类似以下内容:

    with open("IRL.txt", "r") as f:
        resid_list = [x for line in f.readlines() for x in line.split(',')]
        for r in resid_list:
            first = r[0]
            second = r[1]
            num = r[2:]
            # do something with those variables
    

    在您当前的版本中,resid_list 是一个列表列表,但我认为您想要一个扁平的字符串列表。

    【讨论】:

    • 感谢您的回答!这是一个非常简单的解决方案。真的很感谢。
    【解决方案2】:

    for r in resid_list 更改为for r in resid_list[0]

    由于您使用的是列表推导,因此您的参数如下所示:

    In [9]: resid_list
    Out[9]: [['IA45', 'TA43', 'WB58', 'AB71']]
    

    即列表列表

    In [10]: resid_list[0]
    Out[10]: ['IA45', 'TA43', 'WB58', 'AB71']
    

    给你你想要的。

    【讨论】:

      【解决方案3】:

      可以使用re.findall 并使用生成器表达式获取第一个匹配项

      import re
      
      line = 'IA45,TA43,WB58,AB71'
      for fst, snd, nums in (re.findall('(.)(.)(\d+)', el)[0] for el in line.split(',')):
          print fst, snd, nums
      
      I A 45
      T A 43
      W B 58
      A B 71
      

      根据您的行的格式/可预测性,您甚至可以侥幸逃脱:

      for fst, snd, nums in re.findall('(.)(.)(\d+)', line):
          print fst, snd, nums
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        • 2013-02-25
        • 1970-01-01
        相关资源
        最近更新 更多