Вопросы с тегом «list-comprehension»

Синтаксическая конструкция, которая обеспечивает краткий способ создания списков в стиле, аналогичном нотации математического конструктора множеств. Поскольку несколько языков поддерживают составление списков, используйте этот тег вместе с тегом языка программирования.

523
Создать список одного элемента, повторенного N раз

Я хочу создать серию списков различной длины. Каждый список будет содержать один и тот же элемент e, повторяющийся nраз (где n= длина списка). Как мне создать списки, не используя списки [e for number in xrange(n)]для каждого...

386
Понимание словаря Python

Можно ли создать словарь понимания на Python (для ключей)? Без понимания списка вы можете использовать что-то вроде этого: l = [] for n in range(1, 11): l.append(n) Мы можем сократить это до понимания списка l = [n for n in range(1, 11)]. Однако, скажем, я хочу установить ключи словаря на то же...

340
Почему в Python нет понимания кортежей?

Как мы все знаем, есть понимание списка, как [i for i in [1, 2, 3, 4]] и есть словарное понимание, как {i:j for i, j in {1: 'a', 2: 'b'}.items()} но (i for i in (1, 2, 3)) окажется в генераторе, а не в tupleпонимании. Это почему? Я предполагаю, что а tupleявляется неизменным, но это не похоже на...

255
Самый эффективный способ Python выбрать самую длинную строку в списке?

У меня есть список переменной длины, и я пытаюсь найти способ проверить, является ли элемент списка, который в данный момент оценивается, самой длинной строкой, содержащейся в списке. И я использую Python 2.6.1 Например: mylist = ['abc','abcdef','abcd'] for each in mylist: if condition1:...

226
Двойная итерация в понимании списка

В Python вы можете иметь несколько итераторов в понимании списка, например [(x,y) for x in a for y in b] для некоторых подходящих последовательностей а и б. Я знаю семантику вложенных циклов в списках Python. Мой вопрос: может ли один итератор в понимании ссылаться на другой? Другими словами: Могу...

178
Понимание списка в одну строку: варианты if-else

Это больше о синтаксисе понимания списка Python. У меня есть понимание списка, которое производит список нечетных чисел данного диапазона: [x for x in range(1, 10) if x % 2] Это делает фильтр - у меня есть список источников, где я удаляю четные числа ( if x % 2). Я хотел бы использовать что-то...

174
Доступ к переменным класса из списка понимания в определении класса

Как вы получаете доступ к другим переменным класса из понимания списка в определении класса? Следующее работает в Python 2, но не работает в Python 3: class Foo: x = 5 y = [x for i in range(1)] Python 3.2 выдает ошибку: NameError: global name 'x' is not defined Попытка Foo.xтоже не работает. Любые...

156
Являются ли списки и функциональные функции быстрее, чем «для циклов»?

С точки зрения производительности в Python, список постижение, или функции , такие как map(), filter()и reduce()быстрее , чем цикл? Почему, технически, они работают на скорости C , а цикл for работает на скорости виртуальной машины python ? Предположим, что в игре, которую я разрабатываю, мне нужно...

153
Создание словаря из файла CSV?

Я пытаюсь создать словарь из файла CSV. Первый столбец файла csv содержит уникальные ключи, а второй столбец содержит значения. Каждая строка файла CSV представляет собой уникальный ключ, пару значений в словаре. Я пытался использовать csv.DictReaderи csv.DictWriterклассы, но я мог понять только...

125
Python, использующий перечисление внутри понимания списка

Предположим, у меня есть такой список: mylist = ["a","b","c","d"] Чтобы напечатать значения вместе с их индексом, я могу использовать enumerateфункцию Python, подобную этой >>> for i,j in enumerate(mylist): ... print i,j ... 0 a 1 b 2 c 3 d >>> Теперь, когда я пытаюсь использовать...

121
Как обрабатывать исключения в списках?

У меня есть понимание списка в Python, в котором каждая итерация может вызывать исключение. Например , если у меня есть: eggs = (1,3,0,3,2) [1/egg for egg in eggs] Я получу ZeroDivisionErrorисключение в 3-м элементе. Как я могу обработать это исключение и продолжить выполнение понимания списка?...

118
Понимание списка повторно связывает имена даже после объема понимания. Это правильно?

У понимания есть некоторые неожиданные взаимодействия с областью видимости. Это ожидаемое поведение? У меня есть способ: def leave_room(self, uid): u = self.user_by_id(uid) r = self.rooms[u.rid] other_uids = [ouid for ouid in r.users_by_id.keys() if ouid != u.uid] other_us = [self.user_by_id(uid)...

114
Питонический способ печати элементов списка

Я хотел бы знать, есть ли лучший способ распечатать все объекты в списке Python, чем этот: myList = [Person("Foo"), Person("Bar")] print("\n".join(map(str, myList))) Foo Bar Я читал, что это не совсем хорошо: myList = [Person("Foo"), Person("Bar")] for p in myList: print(p) Разве что-то вроде:...

108
Может ли Pythonic использовать списки только для побочных эффектов?

Подумайте о функции, которую я вызываю из-за ее побочных эффектов, а не возвращаемых значений (например, вывод на экран, обновление графического интерфейса, печать в файл и т. Д.). def fun_with_side_effects(x): ...side effects... return y Теперь Pythonic использует списки для вызова этой функции:...

108
Циклы for в пандах действительно плохи? Когда мне нужно заботиться?

Есть forпетли действительно «плохо»? Если нет, то в каких ситуациях они были бы лучше, чем использование более традиционного «векторизованного» подхода? 1 Я знаком с концепцией «векторизации» и с тем, как pandas использует векторизованные методы для ускорения вычислений. Векторизованные функции...