J'ai 2 listes:Une compréhension de la liste avec deux « Fors » et un « si » état
>>> phrases = ['emp_sal','emp_addr']
>>> cols = ['emp_sal_total','emp_sal_monthly','emp_addr_primary','emp_ssn','emp_phone']
Je suis en train d'utiliser la compréhension de la liste et filtrer Col. telle que seules les valeurs Col. devrait être choisi qui ont une phrase emp_sal ou emp_addr en eux.
Ainsi, la production devrait être:
['emp_sal_total','emp_sal_monthly','emp_addr_primary']
Ceci est juste un exemple fictif reproduisant le scénario. Exemple réel a une cols liste de 180 colonnes impaires.
Essayé ci-dessous solution:
new_cols = [c for c in cols if p for p in phrases in c]
Il échoue avec:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'in <string>' requires string as left operand, not list
Ci-dessous approche donne une liste vide:
>>> [c for c in cols if p in c for p in phrases]
[]
Je pense que vous voulez '[c pour c pour p dans Col. phrases si p en c]' – Hamms
Cela fonctionne bien. était un peu proche .. :) –