如何在python中将txt剪切为矩阵?

时间:2018-01-25 17:01:51

标签: python matrix

我有一个看起来像这样的文本:

JB651 ACDCCADBCADCDA
JB831 ACACCBBBBBDDAC
JC124 DACBDBBACBDCDC
JD329 BAACDBABCCDDAB
JD830 BDDCDBABBBAAAD
JI428 DCBCCBBBBCCCCA

我必须把它剪切成矩阵(我先说我必须计算一个for循环的行)看起来像这样:

[[JI428] [D,C,B,C,C,B,B,B,B,C,C,C,C,A]]

然后,我如何参考第二部分的任何行或字母? (我是一个完全开始的人)

1 个答案:

答案 0 :(得分:1)

您可以打开文件并读取每一行,并在当前空格处分割。为了能够访问任何行,从而访问任何字母,最好使用字典:

<appSettings>
    ...
    <add key="AuthenticationProvider" value="Windows" />
    <add key="MembershipService" value="ActiveDirectory" />
    ...
    <add key="ActiveDirectoryDefaultDomain" value="<your.domain>" /> 
    <add key="ActiveDirectoryBackendPath" value="~\App_Data\ADBackend" /> 
    <add key="ActiveDirectoryMemberGroupName" value="Developer" /> 
    <add key="ActiveDirectoryTeamMapping" value="Developers=Developer" /> 
    <add key="ActiveDirectoryRoleMapping" value="Administrator=Developer" />
    ...
</appSettings>
...
<system.web>
    ...
    <authentication mode="Windows" />
    ...
</system.web>

输出:

with open('filename.txt') as f:
  f = [i.strip('\n').split() for i in f]

final_data = {a:list(b) for a, b in f}

您可以通过传递第一列中的键来访问行:

{'JD830': ['B', 'D', 'D', 'C', 'D', 'B', 'A', 'B', 'B', 'B', 'A', 'A', 'A', 'D'], 'JC124': ['D', 'A', 'C', 'B', 'D', 'B', 'B', 'A', 'C', 'B', 'D', 'C', 'D', 'C'], 'JB651': ['A', 'C', 'D', 'C', 'C', 'A', 'D', 'B', 'C', 'A', 'D', 'C', 'D', 'A'], 'JB831': ['A', 'C', 'A', 'C', 'C', 'B', 'B', 'B', 'B', 'B', 'D', 'D', 'A', 'C'], 'JD329': ['B', 'A', 'A', 'C', 'D', 'B', 'A', 'B', 'C', 'C', 'D', 'D', 'A', 'B'], 'JI428': ['D', 'C', 'B', 'C', 'C', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'A']}

输出:

print(final_data['JD830'])