检查嵌套列表中是否有2个值并打印列表中的值

时间:2019-03-06 09:57:24

标签: python

我要求提供一个识别号,例如(6373383-D)和一个图钉。 我有一个这样的嵌套列表:

document.getElementById

如果他在PIN中输入123342344-D和1234,则我必须显示该列表的值。

我的代码是:

cliente = [[0, "Carlos", "Perez Rodriguez", "123342344-D", 4, "ES6621000418401234567891", 1234, 3000, "No"], 
[1, "Ana", "Martin Perez", "19786444-E", 7, "ES6000491500051234567892", 6789, 8000, "No"], 
[2, "Maria", "Sanchez Agudo", "67893456-A", 2, "ES9420805801101234567891", 1111, 10000, "No"], 
[3, "Paco", "Sainz Sanchez", "56782341-B", 2, "ES9000246912501234567891", 9876, 2345, "No"],
[4, "Marcos", "Calvo Rodriguez", "56783452-D", 9, "ES7100302053091234567895", 3456, 8000, "No"]]

我想要类似的东西,我们从来没有使用动态的,我是不允许的

3 个答案:

答案 0 :(得分:3)

考虑到cliente的任何子列表的第四项将包含标识号,而子列表的第七项将包含图钉,则可以打印包含如下项的子列表:

print([k for k in cliente if (k[3]=='123342344-D' and k[6] == 1234)])

或者如果子列表没有排序,请尝试:

print([k for k in cliente if ('123342344-D' in k and 1234 in k)])

答案 1 :(得分:0)

您可以编写动态过滤器功能:

filter_func = lambda id,pin: lambda row: (row[3]==id) and (row[6]==pin )
list(filter(filter_func("123342344-D", 1234), cliente))

结果:

[[0, 'Carlos', 'Perez Rodriguez', '123342344-D', 4, 'ES6621000418401234567891', 1234, 3000, 'No']]

答案 2 :(得分:0)

您可以这样做:

res = [i for i in cliente if i[3]=='123342344-D' and i[6] == 1234]
print(repr(res[0]) if len(res) else 'Not found')