我只是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'
谢谢你的帮助!
您可以使用列表理解来分离id,然后在新创建的列表上使用.index()
[item[0] for item in database].index("merdali")
为了在学习更高级的科目时遵循您的结构,
>>> for i, x in enumerate(database):
... if x[0] == 'merdali':
... print(i)
... break
...
1
>>>
它就像next()
理解一样简单:
index = next(l[1] for l in database if l[0] == "hosni")
顺便说一句,字典是更适合数据库的选择。