hashes = (line.split(':') for line in hashes.text.splitlines())
for h,count in hashes:
if h==hash_to_check:
return count
你能解释一下代码吗?
大概你有一个包含多行的字符串:hashes.text = 'foo:1nbar:2n'
.第一行将其转换为(['foo', '1'], ['bar', '2'])
。第二行遍历该列表列表,循环主体返回内部列表的第二个元素,其中内部列表的第一个元素与hash_to_check
匹配。所以如果hash_to_check = 'foo'
,那么它将返回'1'
.
hashes = []
for line in hashes.text.splitlines():
hashes.append(line.split(':'))
import random
hashes_text = f"""
({random.getrandbits(128)}: 1 n
{random.getrandbits(128)}: 2 n
"""
hash_to_check = random.getrandbits(128)
hashes = (line.split(':') for line in hashes_text.splitlines())
for h, count in hashes:
if h==hash_to_check:
print(count)