-1 python iteration set python-2.7
我正在解析两个大文件(Gb大小顺序),每个文件包含keys
和对应values
.一些keys
在两个文件之间共享,但具有不同的对应values
.对于每个文件,我想写一个新文件keys*
和相应的文件values
,keys*
表示密钥同时出现在file1和file2中.我不关心key
输出中的顺序,但绝对应该在两个文件中的顺序相同.
档案1:
key1
value1-1
key2
value1-2
key3
value1-3
Run Code Online (Sandbox Code Playgroud)
文件2:
key1
value2-1
key5
value2-5
key2
value2-2
Run Code Online (Sandbox Code Playgroud)
有效输出将是:
解析文件1:
key1
value1-1
key2
value1-2
Run Code Online (Sandbox Code Playgroud)
解析文件2:
key1
value2-1
key2
value2-2
Run Code Online (Sandbox Code Playgroud)
另一个有效的输出:
解析文件1:
key2
value1-2
key1
value1-1
Run Code Online (Sandbox Code Playgroud)
解析文件2:
key2
value2-2
key1
value2-1
Run Code Online (Sandbox Code Playgroud)
的无效输出(在文件1和文件2不同的顺序键):
解析文件1:
key2
value1-2
key1
value1-1
Run Code Online (Sandbox Code Playgroud)
解析文件2:
key1
value2-1
key2
value2-2
Run Code Online (Sandbox Code Playgroud)
最后一个精度是,值大小远远大于密钥大小.
我想要做的是:
对于每个输入文件,使用与文件中的键对应的键解析并返回a dict
(让我们调用它file_index
),以及与在输入文件中找到键的偏移量相对应的值.
计算交集
good_keys = file1_index.viewkeys() & file2_index.viewkeys()
Run Code Online (Sandbox Code Playgroud)做一些像(伪代码):
for each file:
for good_key in good_keys:
offset = file_index[good_key]
go to offset in input_file
get corresponding value
write (key, value) to output file
Run Code Online (Sandbox Code Playgroud)迭代相同的集合是否保证我具有完全相同的顺序(假设它是相同的集合:我不会在两次迭代之间修改它),或者我应该首先将集合转换为列表,并迭代清单?
归档时间: |
|
查看次数: |
1779 次 |
最近记录: |