list-comprehension- все статьи тега


Замена элемента в списке без понимания списка, нарезка или использование []s

Я беру этот онлайн-курс Python , и они не любят, когда студенты используют однострочные решения. Курс не будет принимать скобки для этого решения. Я уже решил задачу, используя понимание списка, но курс отклонил мой ответ. Задача гласит: Используя index и другие методы списка, напишите функцию replace(list, X, Y), которая заменяет все вхождения X в list на Y. Например, если L = [3, 1, 4, 1, 5, 9], то replace(L, 1, 7) изменится содержание от L до [3, 7, 4, 7, 5, 9]. Чтобы сделать это упраж ...

Создание словаря с пониманием списка в Python

Мне нравится синтаксис понимания списка Python. может ли он быть использован для создания словарей тоже? Например, путем перебора пар ключей и значений: mydict = {(k,v) for (k,v) in blah blah blah} # doesn't work ...

Выравнивание неглубокого списка в Python [дубликат]

этот вопрос уже есть ответ здесь: создание плоского списка из списка списков в Python 36 ответов есть ли простой способ сгладить список итераций с пониманием списка или в противном случае, что бы вы все считали лучшим способом сгладить неглубокий список, как это, балансируя производительность и читаемость? Я попытался сгладить такой список с вложенным списком понимания, как это: [image for image in men ...

Генераторные выражения и понимание списка

когда вы должны использовать выражения генератора и когда вы должны использовать список понимания в Python? # Generator expression (x*2 for x in range(256)) # List comprehension [x*2 for x in range(256)] ...

Почему в 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 является неизменным, но это, кажется, не ответ. ...

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

У меня есть список переменной длины и я пытаюсь найти способ проверить, если элемент списка в настоящее время оценивается является самой длинной строкой, содержащейся в списке. И я использую Python 2.6.1 например: mylist = ['123','123456','1234'] for each in mylist: if condition1: do_something() elif ___________________: #else if each is the longest string contained in mylist: do_something_else() Я совершенно новый для python, и я уверен, что у меня просто есть мозго ...

Понимание списка во вложенном списке?

у меня есть этот вложенный список: l = [['40', '20', '10', '30'], ['20', '20', '20', '20', '20', '30', '20'], ['30', '20', '30', '50', '10', '30', '20', '20', '20'], ['100', '100'], ['100', '100', '100', '100', '100'], ['100', '100', '100', '100']] , что я хочу сделать, это преобразовать каждый элемент в списке, чтобы плавать. Мое решение таково: newList = [] for x in l: for y in x: newList.append(float(y)) но можно ли это сделать с помощью вложенного списка понимания, не так ли? чт ...

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

Я пытаюсь создать словарь из файла CSV. Первый столбец csv-файла содержит уникальные ключи, а второй столбец содержит значения. Каждая строка csv-файла представляет собой уникальный ключ, пару значений в словаре. Я пытался использовать csv.DictReader и csv.DictWriter классов, но я могу только выяснить, как создать новый словарь для каждой строки. Мне нужен один словарь. Вот код, который я пытаюсь использовать: import csv with open('coors.csv', mode='r') as infile: reader = csv.reader(infil ...

Почему Pylint не любит встроенные функции?

у меня есть такие строки: filter(lambda x: x == 1, [1, 1, 2]) Pylint показывает предупреждение: W: 3: Used builtin function 'filter' почему это? является ли понимание списка рекомендуемым методом? конечно, я могу переписать это так: [x for x in [1, 1, 2] if x == 1] и я не получаю никаких предупреждений, но мне было интересно, есть ли бодрость духа для этого? ...

выход в списке понимания и генераторных выражений

следующее поведение кажется мне довольно нелогичным (Python 3.4): >>> [(yield i) for i in range(3)] <generator object <listcomp> at 0x0245C148> >>> list([(yield i) for i in range(3)]) [0, 1, 2] >>> list((yield i) for i in range(3)) [0, None, 1, None, 2, None] промежуточные значения последней строки на самом деле не всегда None, Они все, что мы send в генератор, эквивалентный (я думаю) в следующий генератор: def f(): for i in range(3): yield (yi ...