Python 我似乎无法在数组的子数组中找到字符串

Python 我似乎无法在数组的子数组中找到字符串,python,arrays,python-3.x,Python,Arrays,Python 3.x,我试图在数组中查找字符串,但即使该字符串包含在数组中,当我打印用于查找字符串的变量时,该变量显示为False。任何帮助都将不胜感激,下面是代码: Name='Admin' array=[['Joseph', '03', '01', 'NN'], ['Seph', '10', '08', '09'], ['Jo', '05', '04', '07'], ['Mark', '01', 'NN', 'NN'], ['BigDave', '00', '02', 'NN'], ['Davy', '03',

我试图在数组中查找字符串,但即使该字符串包含在数组中,当我打印用于查找字符串的变量时,该变量显示为False。任何帮助都将不胜感激,下面是代码:

Name='Admin'
array=[['Joseph', '03', '01', 'NN'], ['Seph', '10', '08', '09'], ['Jo', '05', '04', '07'], ['Mark', '01', 'NN', 'NN'], ['BigDave', '00', '02', 'NN'], ['Davy', '03', 'NN', 'NN'], ['Admin', '10', 'NN', 'N']]
check=Name in array
print(check)
此打印结果导致此错误,我不明白它为什么会这样做。

因为当您询问“Admin”是否在数组中时,它不会检查嵌套数组。您必须对它们进行循环,以查看其中一个是否存在“Admin”

Name='Admin'
array=[['Joseph', '03', '01', 'NN'], ['Seph', '10', '08', '09'], ['Jo', '05', '04', '07'], ['Mark', '01', 'NN', 'NN'], ['BigDave', '00', '02', 'NN'], ['Davy', '03', 'NN', 'NN'], ['Admin', '10', 'NN', 'N']]
for subArray in array:
    if Name in subArray:
        print subArray
产出:

['Admin', '10', 'NN', 'N']

因此,您的代码中没有“name”关键字,因此我从您的列表中添加了“Joseph”关键字

您可以这样做:

Name='Admin'
array=[['Joseph', '03', '01', 'NN'], ['Seph', '10', '08', '09'], ['Jo', '05', '04', '07'], ['Mark', '01', 'NN', 'NN'], ['BigDave', '00', '02', 'NN'], ['Davy', '03', 'NN', 'NN'], ['Admin', '10', 'NN', 'N']]
check = True in [Name in arr for arr in array]
print(check) # prints True

因为in array只搜索列表的顶层,而不搜索内部列表。您的意思是,例如,对于阵列中的子阵列,检查=子阵列中的任何名称还是任何子阵列[0]==名称。。。?或者,重组你的数据-字典{'Joseph':['03','01','nn'],…}会让你在O1而不是On中查找名字。是的,我会这样做,但这意味着我必须重组我的数据complier@jonrshape我还需要能够附加字典附加字典是什么意思?您可以附加到字典中的列表,或者添加具有自己列表值的新键。我建议您阅读一篇介绍数据结构的入门教程。在dict中添加一个新项是很简单的。dict[newKey]=newValue,其中的值可以是您可能会使用的列表。对于我想要的内容来说太复杂了一点也不愚蠢,但任何列表都比列表中的值更具可读性
Name='Admin'
array=[['Joseph', '03', '01', 'NN'], ['Seph', '10', '08', '09'], ['Jo', '05', '04', '07'], ['Mark', '01', 'NN', 'NN'], ['BigDave', '00', '02', 'NN'], ['Davy', '03', 'NN', 'NN'], ['Admin', '10', 'NN', 'N']]
check = True in [Name in arr for arr in array]
print(check) # prints True