这是我的代码的屏幕截图。我正在尝试编写使用文件“HashedPWs”来查找“gang”文件中用户密码的程序。我关注的是从 PwnedPWs100K 中选择随机密码并将两个随机数字连接起来的帮派成员。对于使用 HashedPW 恢复其密码的帮派成员,我使用 Login.pyc 来检查该帮派成员是否使用相同的密码。
我收到语法错误
hash_pws = dict[i.split(',') for i in hash_pws if i.split(',')[0] in gang]
错误信息专门指向第一个“for”。
如果您发现任何问题,请告诉我!
您遇到的语法错误是由于 Python 中列表理解语法的错误使用造成的。在您提到的行中:
hash_pws = dict[i.split(',') for i in hash_pws if i.split(',')[0] in gang]
列表理解的正确语法是在 if 条件之前添加 for 循环部分。就您而言,它们的顺序错误。要修复语法错误,您需要重新排列 for 循环和 if 条件,如下所示:
hash_pws = {i.split(',')[0]: i.split(',')[1] for i in hash_pws if i.split(',')[0] in gang}
我假设 hash_pws 是一个字符串列表,其中每个字符串包含一个以逗号分隔的键值对。通过使用字典理解,我们可以创建一个字典 hash_pws,其中键是每个字符串的第一个元素(用逗号分割后),值是第二个元素。