我可以跑:
echo "asdf" > testfile
tar czf a.tar.gz testfile
tar czf b.tar.gz testfile
md5sum *.tar.gz
Run Code Online (Sandbox Code Playgroud)
事实证明,a.tar.gz并且b.tar.gz有不同的md5哈希值.确实,他们是不同的,这diff -u a.tar.gz b.tar.gz证实了.
我需要传递哪些额外的标志,tar以便它的输出随着时间的推移与相同的输入一致?
我跑的时候
a = ['a']
a.extend(map(lambda x: 'b' + x, a))
Run Code Online (Sandbox Code Playgroud)
它将我的系统锁定,直到我可以执行Ctrl + C,如果我从shell运行它作为Python脚本,并从解释器运行它让我必须硬关闭我的笔记本电脑.
然而,
a = ['a']
a.extend(list(map(lambda x: 'b' + x, a)))
Run Code Online (Sandbox Code Playgroud)
工作正常并给出预期的结果.
为什么会这样?
起初,我认为这可能是因为我试图a用自己运行的map函数进行扩展a,所以我写道:
a = ['a']
tmp = map(lambda x: 'b' + x, a)
a.extend(tmp)
Run Code Online (Sandbox Code Playgroud)
然而,这也冻结了.
同样,这似乎工作正常:
a = ['a']
tmp = list(map(lambda x: 'b' + x, a))
a.extend(tmp)
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
我在Python 3.4.3上这样做.