В итоге: мне нужно написать понимание списка, в котором я ссылаюсь на список, созданный пониманием списка.
Это может быть не то, что вам нужно делать каждый день, но я не думаю, что это что-то необычное.
Возможно, здесь нет ответа, но, пожалуйста, не говорите мне, что я должен использовать цикл for. Это может быть правильно, но это не полезно. Причина в проблемной области: эта строка кода является частью модуля ETL, поэтому важна производительность, а также необходимость избегать создания временного контейнера, поэтому я хочу закодировать этот шаг в аккредитиве. Если бы для меня здесь работал цикл for, я бы просто закодировал его.
В любом случае, я не могу написать это конкретное понимание списка. Причина: выражение, которое мне нужно написать, имеет следующую форму:
[ some_function(s) for s in raw_data if s not in this_list ]
В этом псевдокоде «this_list» относится к списку, созданному путем оценки понимания этого списка. И вот почему я застрял - потому что this_list не будет создан, пока не будет оценено понимание моего списка, и поскольку этот список еще не создан к тому времени, когда мне нужно сослаться на него, я не знаю, как ссылаться на Это.
То, что я рассмотрел до сих пор (и что может быть основано на одном или нескольких ложных предположениях, хотя я точно не знаю, где именно):
разве интерпретатор Python не должен давать этому строящемуся списку имя? я так думаю
это временное имя, вероятно, взято из какого-то связанного метода, используемого для создания моего списка («сумма»?)
но даже если я приложил усилия, чтобы найти этот связанный метод и предположить, что это действительно временное имя, используемое интерпретатором python для ссылки на список, пока он находится в стадии создания, я почти уверен, что вы не можете ссылаться на связанные методы напрямую; я не знаю о таком явном правиле, но эти методы (по крайней мере, те немногие, на которые я действительно смотрел) не являются допустимым синтаксисом python. Я предполагаю, что одна из причин этого заключается в том, что мы не записываем их в наш код.
такова цепочка моих так называемых рассуждений, которая привела меня к заключению или, по крайней мере, к предположению, что я загнал себя в угол. Тем не менее, я подумал, что должен проверить это с сообществом, прежде чем разворачиваться и идти в другом направлении.
set
(судя по псевдокоду, остальное я не читал). - person kennytm   schedule 20.02.2011some_function(s)
?s
после того, как с ним повозились? (2)s is not in this_list
-- каждый s поступает из raw_data; как это могло быть уже в this_list??? - person John Machin   schedule 20.02.2011the actual expression is a sampling algorithm
хочешь подробнее рассказать об этом? - person eat   schedule 20.02.2011