【问题标题】:How to convert table into dictionary with python?如何使用python将表格转换为字典?
【发布时间】:2019-05-10 20:35:10
【问题描述】:

我正在尝试制作 ADFGVX 密码。 在此过程中,我需要将替换表转换为字典。

例如,

<Substitution table>
    A   D   F   G   V   X
A   T   J   B   1   5   V
D   7   4   9   M   G   K
F   Y   N   3   Z   8   F
G   X   D   L   A   U   E
V   R   6   2   H   S   O
X   C   P   Q   I   0   W

进入

{'AA' : 'T', 'AD': 'J', 'AF' : 'B', 'AG' : '1' ...... 'XX' = 'W'}

有人知道吗?


我之前完全不知道,但是,感谢我写了一些(下)的第一条评论。该表是 .txt 格式,如您所见,它在第一行和第一列都有标题。但我不知道如何删除这些并正确匹配键和值。

    f = open(tablefile_location, 'r')
    subs_table = list()
    while True:
        line = f.readline()[1:]
        subs_table.append(line.rstrip().split('\t'))
        if not line: break
    print(subs_table)
    subs_dict = { R+C: subs_table[x][y] for x, R in enumerate(['A', 'D', 'F', 'G', 'V', 'X']) for y, C in enumerate(['A', 'D', 'F', 'G', 'V', 'X']) }
    print(subs_dict)
    f.close()

【问题讨论】:

  • 你的替换表是什么数据格式?它是一个自定义类吗?列表列表?
  • 输入应该可以。你开始得很好;从上次中断的地方继续。
  • 请创建一个minimal reproducible example,记录您迄今为止尝试和研究的内容
  • 您可以查看字典的列表理解。类似{ R+C: table[x][y] for x, R in enumerate(['A','B','C']) for y, C in enumerate(['a', 'b']) }

标签: python


【解决方案1】:

这将根据您在&lt;Substitution table&gt; 中访问数据的方式而有所不同。

使用comprehensions 可能会使收集字典变得更容易一些。例如:

{ R+C: table[x][y] for x, R in enumerate(['A','B','C']) for y, C in enumerate(['a', 'b']) }

会给你听写:

{'Aa': t[0][0], 'Ab': t[0][1], 'Ba': t[1][0], 'Bb': t[1][1], 'Ca': t[2][0], 'Cb': t[2][1]}.

R+C: table[x][y] 部分创建 key: value 对 - 您可以更改它们以提取数据,但您的表需要。每个循环中循环的每个元素一个(for x in X 对应每个 for y in Y)。 enumerate 调用用于提供循环索引以及值 (for index, value in enumerate(Values))。

【讨论】:

  • 我以前完全不知道,但是,感谢您的评论,我已经写了一些。但是我仍然无法解决如何删除这些并正确匹配键和值。
  • @SuperSonic 也许您可以查看网站上的其他一些问题以获得灵感,例如 stackoverflow.com/questions/25013792/… 。可能我想您也想使用标题行和列条目来创建字典中的键。就我个人而言,我会读取并拆分第一行作为第一步,创建一个列标题列表,然后对于每个正常行,只需将第一个值附加到行标题列表中,同时制作一个 table[][]值。
猜你喜欢
  • 2019-01-10
  • 1970-01-01
  • 2022-11-27
  • 2017-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
相关资源
最近更新 更多