有人可以解释这行代码吗?
can someone please explain this line of code?
它的想法是从 nombres
中获取以 padron
给出的任何字母开头的任何名称,并将其保存到 nombres_filtrados
中(我无法理解)
非常感谢您的帮助!
padron = ['A', 'E', 'J', 'T']
nombres = ['Tamara', 'Marcelo', 'Martin', 'Juan', 'Alberto', 'Exequiel',
'Alejandro', 'Leonel', 'Antonio', 'Omar', 'Antonia', 'Amalia',
'Daniela', 'Sofia', 'Celeste', 'Ramon', 'Jorgelina', 'Anabela', "X"]
nombres_filtrados = [x for x in nombres if any(f in x for f in padron)]
print(nombres_filtrados)
谢谢!
名字的所有字母都测试是没用的。一种有效的方法是仅将第一个字母与集合匹配:
[name for name in nombres
if name[0].upper() in set(padron)]
输出:
['Tamara',
'Juan',
'Alberto',
'Exequiel',
'Alejandro',
'Antonio',
'Antonia',
'Amalia',
'Jorgelina',
'Anabela']
nombres_filtrados 根据您的 padron 列表检查每个名字中的每个字母,真正应该是:
padron = ['A', 'E', 'J', 'T']
nombres = ['Tamara', 'Marcelo', 'Martin', 'Juan', 'Alberto', 'Exequiel',
'Alejandro', 'Leonel', 'Antonio', 'Omar', 'Antonia', 'Amalia',
'Daniela', 'Sofia', 'Celeste', 'Ramon', 'Jorgelina', 'Anabela', "X",'eA']
nombres_filtrados = [x for x in nombres if any(f in x[0] for f in padron)]
print(nombres_filtrados)
基本上 nombres_filtrados 正在做的是:
padron = ['A', 'E', 'J', 'T']
nombres = ['Tamara', 'Marcelo', 'Martin', 'Juan', 'Alberto', 'Exequiel',
'Alejandro', 'Leonel', 'Antonio', 'Omar', 'Antonia', 'Amalia',
'Daniela', 'Sofia', 'Celeste', 'Ramon', 'Jorgelina', 'Anabela', "X",'eA']
nombres_filtrados = [x for x in nombres if any(f in x[0] for f in padron)]
output = []
for name in nombres: #For Each Name in Nombres
if name[0] in padron: #if the First Letter is In Padron
output.append(name) #Save To Our Output
print(output)
它的想法是从 nombres
中获取以 padron
给出的任何字母开头的任何名称,并将其保存到 nombres_filtrados
中(我无法理解)
非常感谢您的帮助!
padron = ['A', 'E', 'J', 'T']
nombres = ['Tamara', 'Marcelo', 'Martin', 'Juan', 'Alberto', 'Exequiel',
'Alejandro', 'Leonel', 'Antonio', 'Omar', 'Antonia', 'Amalia',
'Daniela', 'Sofia', 'Celeste', 'Ramon', 'Jorgelina', 'Anabela', "X"]
nombres_filtrados = [x for x in nombres if any(f in x for f in padron)]
print(nombres_filtrados)
谢谢!
名字的所有字母都测试是没用的。一种有效的方法是仅将第一个字母与集合匹配:
[name for name in nombres
if name[0].upper() in set(padron)]
输出:
['Tamara',
'Juan',
'Alberto',
'Exequiel',
'Alejandro',
'Antonio',
'Antonia',
'Amalia',
'Jorgelina',
'Anabela']
nombres_filtrados 根据您的 padron 列表检查每个名字中的每个字母,真正应该是:
padron = ['A', 'E', 'J', 'T']
nombres = ['Tamara', 'Marcelo', 'Martin', 'Juan', 'Alberto', 'Exequiel',
'Alejandro', 'Leonel', 'Antonio', 'Omar', 'Antonia', 'Amalia',
'Daniela', 'Sofia', 'Celeste', 'Ramon', 'Jorgelina', 'Anabela', "X",'eA']
nombres_filtrados = [x for x in nombres if any(f in x[0] for f in padron)]
print(nombres_filtrados)
基本上 nombres_filtrados 正在做的是:
padron = ['A', 'E', 'J', 'T']
nombres = ['Tamara', 'Marcelo', 'Martin', 'Juan', 'Alberto', 'Exequiel',
'Alejandro', 'Leonel', 'Antonio', 'Omar', 'Antonia', 'Amalia',
'Daniela', 'Sofia', 'Celeste', 'Ramon', 'Jorgelina', 'Anabela', "X",'eA']
nombres_filtrados = [x for x in nombres if any(f in x[0] for f in padron)]
output = []
for name in nombres: #For Each Name in Nombres
if name[0] in padron: #if the First Letter is In Padron
output.append(name) #Save To Our Output
print(output)