Я хотел бы, чтобы достичь следующего эффектапростые Отключающие элементы из списка в Python
a=[11, -1, -1, -1]
msg=['one','two','tree','four']
msg[where a<0]
['two','tree','four']
В подобной простой форме (без противных петель).
PS. Для любознательных людей этот оператор if работает на одном из функциональных языков.
// EDIT
Я знаю, что ниже текст отличается, что вышеуказанные требования, но я обнаружил, что я в acheave привычный. Я не хочу спамить другой ответ в своей теме, поэтому я также нашел какое-то приятное решение, , и я хочу представить его вам.
filter(lambda x: not x.endswith('one'),msg)
Я почти достиг этого с помощью карты (lambda x: operator.itemgetter (x) (msg), [1, 2, 3]), но как это сделать: [1,2,3] – bua
Вы можете получить '[1,2,3]' используя '[i for (i, j) в перечислении (a), если j <0]', но решение 'zip' лучше. –
Меня интересует производительность, но я полагаю, что ваше почтовое решение, вероятно, будет быстрее. – bua