<p>你应该用Python来做这个:</p>
<pre><code>my_dict = {
'A': ['arylpolyene', 'hserlactone', 'hserlactone', 'nrps', 'siderophore', 't1pks-nrps', 'terpene', 'thiopeptide', 'transatpks-nrps'],
'B': ['hserlactone', 'hserlactone-arylpolyene', 'nrps', 'siderophore', 'thiopeptide'],
'C': ['nrps', 'nrps', 'nrps', 'siderophore', 't1pks-nrps', 't1pks-nrps'],
'D': ['nrps', 'siderophore', 't1pks-nrps']
}
rows_list=list(my_dict.keys())
values=list(my_dict.values())
rows_size=len(rows_list)
columns_list = []
for sublist in values:
for item in sublist:
if item not in columns_list:
columns_list.append(item)
columns_size = len(columns_list)
#initialize adjacent matrix
print('Initial adjacent matrix')
adjacent = [ [0]*columns_size for i in range(rows_size) ]
for row in adjacent:
print(row)
for key, value in my_dict.items():
for v in value:
adjacent[rows_list.index(key)][columns_list.index(v)] += 1
print('-'*50)
print('Final adjacent matrix')
for row in adjacent:
print(row)
</code></pre>
<p>在第一个循环<code>for sublist in values:</code>我创建了一个列表,其中包含您想要的值作为没有重复项的列。在</p>
<p>在<code>adjacent = [ [0]*columns_size for i in range(rows_size) ]</code>中,我创建了一个列表,其中的元素数与字典键的数目相同。这些元素中的每一个都是一个列表,其中的元素数与列值的数目相同。在</p>
<p>我试着尽可能简单地做,如果有什么你搞不懂的,告诉我:)</p>