【问题标题】:how to parse a file and transfer a set of two pairwise data into a 2D array [closed]如何解析文件并将一组两个成对数据传输到二维数组中[关闭]
【发布时间】:2013-01-13 11:36:33
【问题描述】:

使用以下代码解析后我有一个文件

with open ('cl1_vs_cl1.blast', 'rb') as csvfile:
read= csv.reader(csvfile, delimiter='\t', quotechar='|')                    
for row in read:
print row[0],row[1],row[11]

它会生成一个类似

的文件
A B = n1
A C = n2
A D = n3
B C = n4
B D = n5
......

我想将成对的数据分配到一个二维数组中。

  A B C D .....
A   n1 n2 n3
B n1    
C n2 n4
D n3 n5 ....... 

我怎样才能实现它? 如果我还想将成对的数据保存为 perl 中的哈希值,我该怎么做? 非常感谢!

...

【问题讨论】:

  • 您希望键在数组中吗?意思是,您希望 array[0][1] 处的元素是 'A' 还是 n1?
  • 对于散列,我希望 A ,B 成为关键......就像 c++ 映射中的映射映射 > > 对于数组,我不是确定是否重要? .我打算用数组为这些元素A、B、C、D建立层次聚类......
  • 对不起,A、B、C、D 只代表元素。在我的情况下,通常是 2000-50000 个元素输入

标签: python arrays parsing hashmap


【解决方案1】:

对于哈希部分(python中也称为字典)

from collections import defaultdict
myHash = defaultdict(defaultdict) # dictionary
for row in read:
    myHash[row[0]][row[1]] = row[11]

这将允许您通过 myHash['A']['B'] 访问您的信息并返回 n1

【讨论】:

  • 非常感谢!我认为这是哈希的正确方法
猜你喜欢
  • 2016-04-09
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 2018-12-16
  • 1970-01-01
  • 2014-12-30
相关资源
最近更新 更多