【问题标题】:Extraction of data from a delimited string in Python [closed]从Python中的定界字符串中提取数据[关闭]
【发布时间】:2021-08-05 20:02:06
【问题描述】:

我有一个字符串变量,其中包含如下所示的一些数据:

'From\tTo\nA0A3Q8IUE6\t13392634\nA4I9M8\t5072523\nE9BQL4\t13392634\nQ4Q3E9\t5654813\nE9B4M7\t13452251\nA0A088S7I8\t22574266\nA4HAG8\t5414882\nA0A3P3Z499\t5414882'

数据基本上有两列'From'和'To'。如何从 python 中的“To”列中提取条目?

【问题讨论】:

  • 对正则表达式和split函数做一些研究。
  • 使用 awk -F'\t' 类似:awk -F'\t' '{print $2}' <(echo -e 'From\tTo\nA0A3Q8IUE6\t13392634\nA4I9M8\t5072523\nE9BQL4\t13392634\nQ4Q3E9\t5654813\nE9B4M7\t13452251\nA0A088S7I8\t22574266\nA4HAG8\t5414882\nA0A3P3Z499\t5414882'})
  • 在 Python 中(如果字符串是 yourstring):[value.split('\t')[1] for value in yourstring.split('\n')]

标签: python string


【解决方案1】:

您可以使用拆分,然后从奇数索引中提取数据,如下所示:

data = 'From\tTo\nA0A3Q8IUE6\t13392634\nA4I9M8\t5072523\nE9BQL4\t13392634\nQ4Q3E9\t5654813\nE9B4M7\t13452251\nA0A088S7I8\t22574266\nA4HAG8\t5414882\nA0A3P3Z499\t5414882'

print(data)
data = data.split()
to = [data[i] for i in range(3, len(data), 2)]
print(to)

【讨论】:

    【解决方案2】:

    在 python 中,您可以在特定字符处拆分字符串,在您的情况下,\n 分隔 row\t 分隔 column

    这样的事情应该可以工作:

    string='From\tTo\nA0A3Q8IUE6\t13392634\nA4I9M8\t5072523\nE9BQL4\t13392634\nQ4Q3E9\t5654813\nE9B4M7\t13452251\nA0A088S7I8\t22574266\nA4HAG8\t5414882\nA0A3P3Z499\t5414882'
    f=[]
    t=[]
    for row in string.split("\n")[1:]:
        fr,to=row.split("\t")
        f.append(fr)
        t.append(to)
    
    print(f,t)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多