Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
develop:pyton:lists [2022/02/17 17:31] admin |
develop:pyton:lists [2022/12/18 16:04] (текущий) admin |
||
---|---|---|---|
Строка 68: | Строка 68: | ||
>> 26 | >> 26 | ||
</ | </ | ||
+ | |||
+ | |||
+ | === Фильтрация в списке === | ||
+ | [[https:// | ||
+ | <code python> | ||
+ | # В новый список добавляется элемент i, если подходит под if, его можно модифицировать в начале конструкции | ||
+ | res = [i for i in raw_list if re.search(f" | ||
+ | |||
+ | # | ||
+ | regexp = re.compile(f" | ||
+ | res2 = list(filter(regexp.fullmatch, | ||
+ | </ | ||
+ | |||
Строка 154: | Строка 167: | ||
</ | </ | ||
- | <code python> | ||
- | </ | ||
==== Модуль itertools ==== | ==== Модуль itertools ==== | ||
Ф-ции позволяющие генерировать различные последовательности, | Ф-ции позволяющие генерировать различные последовательности, | ||
- | |||
- | <code python> | ||
- | </ | ||
- | |||
- | <code python> | ||
- | </ | ||
=== Генерирование неопределенного кол-ва значений === | === Генерирование неопределенного кол-ва значений === | ||
- | **count(< | + | * **count(< |
- | **cycle()** - на каждой итерации возвращает очередной элемент указанной последовательности, | + | |
- | **repeat()** - возвращает объект указанное кол-во раз\\ | + | |
<code python> | <code python> | ||
Строка 186: | Строка 191: | ||
=== Генерирование комбинаций === | === Генерирование комбинаций === | ||
- | **combinations()** - на каждой итерации возвращает кортеж, | + | * **combinations()** - на каждой итерации возвращает кортеж, |
- | **combinations_with_replacement()** - -||- ток элементы могут повторяться\\ | + | |
- | **permutations()** - -||- если кол-во не указано, | + | |
- | **product()** - -||- из одной или нескольких последовательностей\\ | + | |
<code python> | <code python> | ||
+ | list(itertools.combinations(' | ||
+ | >> [(' | ||
- | + | list(itertools.combinations(' | |
- | </code> | + | >> |
- | + | ||
- | <code python> | + | |
</ | </ | ||
=== Фильтрация последовательности === | === Фильтрация последовательности === | ||
- | + | Указывается пользовательская функция для проверки условия, | |
- | + | **filterfalse()**, | |
- | <code python> | + | |
- | </code> | + | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
=== Прочие функции === | === Прочие функции === | ||
- | + | Несколько функций для работы с последовательностями: | |
- | + | **islice()**, | |
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | + | ||
===== Словари ===== | ===== Словари ===== | ||
+ | Ассоциативные массивы, | ||
+ | Объекты произвольного типа, неограниченная вложенность, | ||
+ | Фильтрация словаря (аналогично списку, | ||
<code python> | <code python> | ||
+ | dict_match_graph = {name_graph: | ||
</ | </ | ||
- | |||
- | <code python> | ||
- | </ | ||
- | |||
==== Создание словаря ==== | ==== Создание словаря ==== | ||
- | + | * **dict()** | |
- | + | * **{}** | |
- | <code python> | + | * **dict.fromkeys()** |
- | </ | + | * **copy(), deepcopy()** |
- | + | ||
- | <code python> | + | |
- | </ | + | |
==== Операции над словарями ==== | ==== Операции над словарями ==== | ||
- | + | Обращение по ключу, если элемента нет то будет исключение **KeyError**, | |
- | + | Проверка на вхождение- **in, not in**\\ | |
- | <code python> | + | * **setdefault(<key>, <default>)** - если ключ отсутствует, |
- | </code> | + | * **len()**- кол-во ключей в словаре\\ |
- | + | * **del()**- удаляет элемент (del d[' | |
- | <code python> | + | |
- | </code> | + | |
==== Перебор элементов словаря ==== | ==== Перебор элементов словаря ==== | ||
- | + | Метод **keys()** возвращает объект с ключами, | |
- | + | **sort()**, **sorted()** - метод и функция для сортировки ключей | |
- | <code python> | + | |
- | </ | + | |
<code python> | <code python> | ||
+ | for key in sorted(d.keys()): | ||
+ | print(" | ||
</ | </ | ||
==== Методы ==== | ==== Методы ==== | ||
- | + | * **keys(), values(), items()**- возвращает объект содержащий соответствующую перечень данных | |
- | + | * **pop(), popitem(), clear()**- удаление | |
- | <code python> | + | * **update()**- добавляет элементы в словарь, |
- | </ | + | * **copy(), get(), setdefault(), |
- | + | ||
- | <code python> | + | |
- | </ | + | |
==== Генераторы словарей ==== | ==== Генераторы словарей ==== | ||
+ | В отличии от генераторов списков, | ||
<code python> | <code python> | ||
- | </code> | + | arrkeys= [' |
+ | arrvalues= [' | ||
+ | {k: v for (k, v) in zip(arrkeys, | ||
+ | >> {' | ||
- | <code python> | + | {k:0 for k in arrkeys} |
+ | {' | ||
</ | </ | ||
- | |||
- | |||
- | <code python> | ||
- | </ | ||
- | |||
- | |||
- | <code python> | ||
- | </ | ||
- | |||
- | <code python> | ||
- | </ |