为什么TypeError:unhashable类型:'list'即将出现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么TypeError:unhashable类型:'list'即将出现?相关的知识,希望对你有一定的参考价值。

你好伙计们在运行我的最终代码后遇到错误,我想知道我做错了什么?

进口重新

def password():print('输入密码 n n密码必须超过6个字符。 n')

while True:
    password = raw_input('Password: ')
    if 6 < len(password):
        break
    print ('The password must be more than 6 characters.
')

password_scores = {0:'Very weak', 1:'Weak', 2:'Medium', 3:'Strong', 4:'Very strong'}
password_strength = dict.fromkeys(['has_upper', 'has_lower', 'has_num' , 'has_sym', False])
if re.search(r'[A-Z]', password):
    password_strength['has_upper'] = True
if re.search(r'[a-z]', password):
    password_strength['has_lower'] = True
if re.search(r'[0-9]', password):
    password_strength['has_num'] = True
if re.search(list("[ !#$%&'()*+,-./[\]^_`{|}~ ]") , password):
    password_strength['has_sym'] = True

score = len([b for b in password_strength.values() if b])

print ('Password is %s' % password_scores[score])

密码()

答案

if语句替换为以下语句,它将起作用:

if re.search("[!#$%&'()*+,-./[\]^_`{|}~ ]" , password):
    password_strength['has_sym'] = True

以上是关于为什么TypeError:unhashable类型:'list'即将出现?的主要内容,如果未能解决你的问题,请参考以下文章

2. python提示:TypeError: unhashable type: 'list'

TypeError: unhashable type: 'numpy.ndarray'

Python debug——TypeError unhashable type(list/set/dict)

当我使用 st.cache 时,Streamlit Unhashable TypeError

如何克服 TypeError: unhashable type: 'list'

如何克服 TypeError: unhashable type: 'list'