0

我有两个基本相同的文件,但有一些我想忽略的小差异。具体来说,我知道一个十六进制值写为“0xFFFFFFFF”,而另一个写为“FFFFFFFF”

基本上,这两个文档是变量列表、它们的值、它们在内存中的位置、大小等。

但另一个问题是它们的顺序也不相同。

我尝试了一些事情,一个是将它们全部打包在两个列表列表中,并比较列表列表是否彼此对应,但是变量的数量几乎是 100,000,这样做需要的时间是荒谬(大约一个小时),所以这是行不通的。我对python不是很熟悉,甚至不是pythonic的做事方式,所以如果有一种快速简便的方法可以做到这一点,我很抱歉。

我已经阅读了其他一些类似的问题,但它们都假设 100% 相同,以及其他在我的情况下不正确的事情。

基本上,我有两个 .txt,其中包含一系列如下所示的行:

***************************************
Variable: Var_name1
Size: 4
Address: 0x00FF00F0 .. 0x00FF00F3
Description: An awesome variable
..
***************************************

我不在乎描述是否不同,我只想确保每个变量都具有相同的长度并且在同一个地方,地址方面,如果它们有任何不同,我想看看它们。我还想确保一个变量中的每个变量都存在于另一个变量中。

同样,第一个地址中的地址是用十六进制基数编写的,而第二个地址中的地址是没有十六进制基数的。它们的顺序不同

- - 输出 - -

只要它是人类可读的,我并不真正关心输出的格式。理想情况下,它应该是一个 .txt 文档,内容如下:

"Var_name1 does not exist in list two"
"Var_name2 has a different size. (Size1, Size2)"
"Var_name4 is located in a different place. (Loc1, Loc2)"
4

1 回答 1

0

完成重新编辑
[我最初的建议是使用sets,但通过评论的进一步讨论让我意识到这是无稽之谈,而字典是真正的解决方案。]

你想要一本字典;键入变量名;并且值是一个列表或一个元组或一个嵌套字典,甚至是一个对象,包含大小和地址。您可以将每个变量名称添加到字典并根据需要更新值。
为了比较地址,正则表达式可以做到这一点,但您可能只需使用str.contains(_).

于 2013-09-14T01:13:39.590 回答