【问题标题】:how can i split each line into 3 parts我怎样才能将每一行分成3部分
【发布时间】:2019-10-30 10:05:06
【问题描述】:
10103   Baldwin, C  SFEN
10115   Wyatt, X    SFEN
10172   Forbes, I   SFEN
10175   Erickson, D SFEN
10183   Chapman, O  SFEN
11399   Cordova, I  SYEN
11461   Wright, U   SYEN
11658   Kelly, P    SYEN
11714   Morton, A   SYEN
11788   Fuller, E   SYEN

如何将每行的前两个元素作为键和值。对于第 1 行键 =101103,值 = Baldwin,C

【问题讨论】:

标签: python-3.x


【解决方案1】:

您可以尝试在此处使用 re.findall 并使用以下模式:

(\d+)\s+(\w+, [A-Z])\s+(\w+)

示例脚本:

inp = """
    10103   Baldwin, C  SFEN
    10115   Wyatt, X    SFEN
    10172   Forbes, I   SFEN
    10175   Erickson, D SFEN
    10183   Chapman, O  SFEN
    11399   Cordova, I  SYEN
    11461   Wright, U   SYEN
    11658   Kelly, P    SYEN
    11714   Morton, A   SYEN
    11788   Fuller, E   SYEN"""

parts = re.findall(r'(\d+)\s+(\w+, [A-Z]).*', inp)
d = {}
for elem in parts:
    try:
        d[elem[0]].append(elem[1])
    except KeyError:
        d[elem[0]] = [elem[1]]

print(d)

打印出来:

{'10183': ['Chapman, O'], '10172': ['Forbes, I'], '10175': ['Erickson, D'],
 '11399': ['Cordova, I'], '11658': ['Kelly, P'], '11461': ['Wright, U'],
 '11714': ['Morton, A'], '10115': ['Wyatt, X'], '11788': ['Fuller, E'],
 '10103': ['Baldwin, C']}

【讨论】:

  • 我希望字典中每行的前两个元素作为键和值
  • 我编辑了我的答案,假设您希望 ID 作为键,名称作为值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-06
  • 2020-01-01
相关资源
最近更新 更多