我只是 Python 的初学者,我想挑战自己,所以我创建了一个数据库作为包含 id、密码列表的列表,例如:
database =[['hosni', '66741'], ['merdali', 'mkemal'], ['ahmet', '123'], ['ahmethan', '6669']]
我想知道数据库中 id 的索引号,所以我尝试了这个:
for i in range(len(database)):
if database[i].index('merdali')==0:
print(i)
但是我明白了:error:ValueError: 'merdali' is not in list
关键是程序不应该独立运行整个列表并检查条件是否满足,如果满足,打印我要求的“i”值?
如果代码运行正常,我会编写以下内容来访问密码:
database[1][1]=='mkemal'
已经感谢您的帮助!
答案 0 :(得分:0)
您可以使用列表理解来分离 id,然后在新创建的列表上使用 .index()
[item[0] for item in database].index("merdali")
答案 1 :(得分:0)
要在学习更高级的科目时遵循您的结构,
>>> for i, x in enumerate(database):
... if x[0] == 'merdali':
... print(i)
... break
...
1
>>>
答案 2 :(得分:0)
就像理解next()
一样简单:
index = next(l[1] for l in database if l[0] == "hosni")
顺便说一句,字典是一种更适合您的数据库的选择。