我想得到你的帮助,在写一个脚本来计算两个文件中常见的数字集的数目。我的文件格式如下所示
文件1
0: 152 145 148
1: 251 280 428
2: 42 281 407
3: 289 292 331
4: 309 212 226
5: 339 336 376
6: 339 376 380
7: 41 406 205
8: 237 418 193
文件2
0: 251 280 428
1: 309 212 226
2: 339 336 376
3: 339 376 380
4: 420 414 199
5: 418 193 237
6: 203 195 200
7: 287 161 257
8: 287 257 158
9: 263 369 15
10: 285 323 327
第一列只是序列号,在检查两个文件之间的匹配时应忽略,具有不同顺序的相同数字集应计为公共数字(for e.g 237 418 193 = 418 193 237)
在这种情况下,预期结果将是。。。。。你知道吗
5 # no. of common sets
251 280 428
309 212 226
339 336 376
339 376 380
237 418 193
我试过用awk脚本-
awk 'FNR==NR{a[$3]=$0;next}{if(b=a[$3]){print b}}' file1 file2
不幸的是,集合“237 418 193”不计算,因为它在第二个文件(418 193 237)中的顺序不同。你知道吗
有谁能帮我用awk
或Python
脚本来完成这个任务。你知道吗
有什么需要帮忙的吗?你知道吗
解析文件,创建
set
行,每个元素按字典顺序排序。你知道吗然后看看其中有多少存在于另一个
(根据评论编辑)
请尝试以下python代码:
输出:
使用集合和
.intersection
:将作为输出:
相关问题 更多 >
编程相关推荐