我想搜索游戏中使用的以前用户名的数组,以供玩家当前使用的用户名(允许显示用户名下的所有以前的游戏分数)。该列表已从外部文本文件导入。搜索列表的元素
for x in range(0, len(lis)):
if username == lis[x]:
print "yes"
print lis[x]
在这里例如,用户名可以是“杰克”。尽管lis中的多个元素的值为“Jack”(通过“print lis [x]”打印列表的所有值来验证),但从不打印“yes”以显示此值。
怎么回事?
尝试打印列表的原始值;如果从文件中读取,则很有可能将'Jack'与'Jack \ n'进行比较,当然这不匹配。 –
尝试调用lis [x] .strip()来摆脱尾随的换行符/空格 – rassar
(旁注)可以使用in-keyword检查对象是否在列表中更简单:'if username in lis:print(“是“)'。另外,如果您打算多次检查这种类型的东西,请考虑使用一套。 – Bendik