Инструменты пользователя

Инструменты сайта


develop:pyton:lists

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
develop:pyton:lists [2022/02/17 17:31]
admin
develop:pyton:lists [2022/12/18 16:04] (текущий)
admin
Строка 68: Строка 68:
 >> 26 >> 26
 </code> </code>
 +
 +
 +=== Фильтрация в списке ===
 +[[https://www.w3schools.com/python/python_lists_comprehension.asp|List Comprehension]]\\
 +<code python>
 +  # В новый список добавляется элемент i, если подходит под if, его можно модифицировать в начале конструкции
 +res = [i for i in raw_list if re.search(f".*{text}.*", i, re.I)]
 +
 +  # 
 +regexp = re.compile(f".*{text}.*", re.I)
 +res2 = list(filter(regexp.fullmatch, raw_list))
 +</code>
 +
  
  
Строка 154: Строка 167:
 </code> </code>
  
-<code python> 
-</code> 
  
  
 ==== Модуль itertools ==== ==== Модуль itertools ====
 Ф-ции позволяющие генерировать различные последовательности, производить фильтрацию и т.д. Ф-ции позволяющие генерировать различные последовательности, производить фильтрацию и т.д.
- 
-<code python> 
-</code> 
- 
-<code python> 
-</code> 
  
  
 === Генерирование неопределенного кол-ва значений === === Генерирование неопределенного кол-ва значений ===
-**count(<start>=0, <step>=1)** - создает бесконечную последовательность. Удобно для подсчета\\ +  * **count(<start>=0, <step>=1)** - создает бесконечную последовательность. Удобно для подсчета\\ 
-**cycle()** - на каждой итерации возвращает очередной элемент указанной последовательности, по кругу\\ +  **cycle()** - на каждой итерации возвращает очередной элемент указанной последовательности, по кругу\\ 
-**repeat()** - возвращает объект указанное кол-во раз\\+  **repeat()** - возвращает объект указанное кол-во раз\\
  
 <code python> <code python>
Строка 186: Строка 191:
  
 === Генерирование комбинаций === === Генерирование комбинаций ===
-**combinations()** - на каждой итерации возвращает кортеж, комбинаций из указанного кол-ва эл, элементы гарантированно разные\\ +  * **combinations()** - на каждой итерации возвращает кортеж, комбинаций из указанного кол-ва эл, элементы гарантированно разные\\ 
-**combinations_with_replacement()** - -||- ток элементы могут повторяться\\ +  **combinations_with_replacement()** - -||- ток элементы могут повторяться\\ 
-**permutations()** - -||- если кол-во не указано, используется длинна последовательности\\ +  **permutations()** - -||- если кол-во не указано, используется длинна последовательности\\ 
-**product()** - -||- из одной или нескольких последовательностей\\+  **product()** - -||- из одной или нескольких последовательностей\\
  
 <code python> <code python>
 +list(itertools.combinations('абвг', 2))
 +>> [('а', 'б'), ('а', 'в'), ('а', 'г'), ('б', 'в') ...]
  
- +list(itertools.combinations('абвг', 2)) 
-</code> +>> [('а', 'б'), ('а', 'в'), ('а', 'г'), ('б', 'в') ...]
- +
-<code python>+
 </code> </code>
  
  
 === Фильтрация последовательности === === Фильтрация последовательности ===
- +Указывается пользовательская функция для проверки условия, возвращаются элементы соответствующие true/false, в зависимости от метода, разные варианты:\\ 
- +**filterfalse()**, **dropwhile()**, **takewhile()**, **compress()**\\
-<code python> +
-</code> +
- +
-<code python> +
-</code>+
  
  
 === Прочие функции === === Прочие функции ===
- +Несколько функций для работы с последовательностями:\\ 
- +**islice()**, **starmap()**, **zip_longest()**, **accumulate()**, **chain()**, **chain.from.iterable()**, **tee**\\
-<code python> +
-</code> +
- +
-<code python> +
-</code> +
- +
- +
  
  
 ===== Словари ===== ===== Словари =====
 +Ассоциативные массивы, в качестве **ключа может быть неизменяемый** тип данных в т.ч. кортеж, сам **словарь изменяемый** тип.\\
 +Объекты произвольного типа, неограниченная вложенность, многие методы списков не доступны, например срез, конкатенация, повторение и т.д.\\
  
 +Фильтрация словаря (аналогично списку, генерация)\\
 <code python> <code python>
 +dict_match_graph = {name_graph: id_graph for name_graph, id_graph in dict_all_graphs.items() if re.search(input_text, name_graph, re.I)}
 </code> </code>
- 
-<code python> 
-</code> 
- 
  
 ==== Создание словаря ==== ==== Создание словаря ====
- +  * **dict()**  
- +  * **{}**   
-<code python> +  * **dict.fromkeys()** 
-</code> +  * **copy(), deepcopy()**
- +
-<code python> +
-</code>+
  
  
 ==== Операции над словарями ==== ==== Операции над словарями ====
- +Обращение по ключу, если элемента нет то будет исключение **KeyError**, чтобы избежать можно обращаться методом **get(<key><default>)**\\ 
- +Проверка на вхождение- **in, not in**\\ 
-<code python> +  * **setdefault(<key><default>)** - если ключ отсутствует, то создастся элемент\\ 
-</code+  * **len()**- кол-во ключей в словаре\\  
- +  * **del()**- удаляет элемент (del d['key'])\\
-<code python> +
-</code>+
  
  
 ==== Перебор элементов словаря ==== ==== Перебор элементов словаря ====
- +Метод **keys()** возвращает объект с ключами, по которым можно получить доступ в цикле\\ 
- +**sort()**, **sorted()** - метод и функция для сортировки ключей
-<code python> +
-</code> +
 <code python> <code python>
 +for key in sorted(d.keys()):
 +  print("({0} - {1})".format(key, d[key]), end= '\n')
 </code> </code>
  
  
 ==== Методы ==== ==== Методы ====
- +  * **keys(), values(), items()**- возвращает объект содержащий соответствующую перечень данных 
- +  * **pop(), popitem(), clear()**- удаление 
-<code python> +  * **update()**- добавляет элементы в словарь, **имеющиеся ключи перезапишутся** 
-</code> +  * **copy(), get(), setdefault(), in, not in** 
- +
-<code python> +
-</code>+
  
  
 ==== Генераторы словарей ==== ==== Генераторы словарей ====
 +В отличии от генераторов списков, тут значение в фигурных (а не квадратных) скобках, внутри выражения два значения а не одно (ключ:значение)\\
  
 <code python> <code python>
-</code>+arrkeys= ['a', 'b'
 +arrvalues= ['1', '2'
 +{k: v for (k, v) in zip(arrkeys, arrvalues)} 
 +>> {'a':1, 'b':2}
  
-<code python>+{k:0 for k in arrkeys} 
 +{'a':0, 'b':0}
 </code> </code>
  
- 
- 
-<code python> 
-</code> 
- 
- 
-<code python> 
-</code> 
- 
-<code python> 
-</code> 
develop/pyton/lists.1645119072.txt.gz · Последнее изменение: 2022/02/17 17:31 — admin