result with the original我正在尝试找出如何将下面的元组理解转换为for循环。在课堂视频中,这仅以以下方式完成。我已经向班上的discord寻求帮助和助教,但我没有得到任何我能理解的反馈。 编辑:是的,我知道我不应该使用相同的变量名。我已经在原稿和我的之间进行了注释和取消注释,这样我就不必经常更改下面的几行了。 ------------------这是原件-----------------
def get_password_leaks_count(hashes, hash_to_check):
hashes = (line.split(':') for line in hashes.text.splitlines())
print(hashes)
for h, count in hashes:
if h == hash_to_check:
return count
return 0
print(h, count)
下面是我到目前为止所做的工作,但我甚至不确定我是否走上了正确的道路;我甚至不确定hash_to_check=[]是否应该存在
def get_password_leaks_count(hashes, hash_to_check):
hashes = hashes.text.splitlines()
for line in hashes:
hashes = line.split(":")
hashes = hash_to_check
print(hashes)
# for h, count in hashes:
# if h == hash_to_check:
# return count
# return 0
代码很混乱,因为它重用了变量
hashes
。避免这种情况,并省略第一个print
语句,该语句只打印生成器对象,而不打印它生成的值(我怀疑是否真的需要)。注意,我还省略了最后一个print
,因为它紧跟着一个return
语句,所以永远不会到达顺便说一句,尽管问题的标题不同,你在原文中没有列表理解。相反,您有一个生成器表达式。对它进行迭代的效果与对列表理解生成的列表进行迭代的效果类似,但是为了避免在内存中创建不必要的临时列表,将使用生成器
相关问题 更多 >
编程相关推荐