fix(guide): simplify directory structure

This commit is contained in:
Mrugesh Mohapatra
2018-10-16 21:26:13 +05:30
parent f989c28c52
commit da0df12ab7
35752 changed files with 0 additions and 317652 deletions

View File

@@ -0,0 +1,124 @@
---
title: Lists
localeTitle: Списки
---
**TODO: `list` основных сведений**
[Документы Python - Списки](https://docs.python.org/3/library/stdtypes.html#lists)
**Создание:**
Пустой `list` создается с помощью пары квадратных скобок:
```shell
>>> empty_list = []
>>> type(empty_list)
<class 'list'>
>>> len(empty_list)
0
```
`list` может быть создан с помощью элементов, заключая в список разделенных запятыми элементов с квадратными скобками. Списки позволяют использовать элементы разных типов (гетерогенные), но чаще всего однотипные (однородные):
```shell
>>> homogeneous_list = [1, 1, 2, 3, 5, 8]
>>> type(homogeneous_list)
<class 'list'>
>>> print(homogeneous_list)
[1, 1, 2, 3, 5, 8]
>>> len(homogeneous_list)
6
>>> heterogeneous_list = [1, "Hello Campers!"]
>>> print(heterogeneous_list)
[1, "Hello Campers!"]
>>> len(heterogeneous_list)
2
```
Конструктор `list` также можно использовать для создания `list` :
```shell
>>> empty_list = list() # Creates an empty list
>>> print(empty_list)
[]
>>> list_from_iterable = list("Hello campers!") # Creates a list from an iterable.
>>> print(list_from_iterable)
['H', 'e', 'l', 'l', 'o', ' ', 'c', 'a', 'm', 'p', 'e', 'r', 's', '!']
```
**Доступ к элементам `list` :**
```shell
>>> my_list = [1, 2, 9, 16, 25]
>>> print(my_list)
[1, 2, 9, 16, 25]
```
_Нулевой индекс_
```shell
>>> my_list[0]
1
>>> my_list[1]
2
>>> my_list[2]
9
```
_Обтекание индексации_
```shell
>>> my_list[-1]
25
>>> my_list[-2]
16
```
_Распаковка списков для python-3_
```shell
>>> print(*my_list)
1 2 9 16 25
```
**Mutable:**
`lists` являются изменяемыми контейнерами. Конвертируемые контейнеры представляют собой контейнеры, которые допускают внесение изменений в объекты, содержащиеся в контейнере. **TODO: ДОБАВИТЬ БОЛЬШЕ?**
ереустановка элементов в списке_
Элементы из `list` могут быть извлечены и перенастроены с использованием другого `list` качестве индекса.
```shell
>>> my_list = [1, 2, 9, 16, 25, 34, 53, 21]
>>> my_index = [5, 2, 0]
>>> my_new_list = [my_list[i] for i in my_index]
>>> print(my_new_list)
[34, 9, 1]
```
**TODO: Какие из них следует обсудить здесь:**
[Документы Python - дополнительные сведения о списках](https://docs.python.org/3/tutorial/datastructures.html#more-on-lists)
* `list.append(x)` Добавить элемент в конец списка. Эквивалентен \[len (a):\] = \[x\].
* `list.extend(L)` Расширить список, добавив все элементы в данный список. Эквивалентен \[len (a):\] = L.
* `list.insert(i, x)` Вставить элемент в заданную позицию. Первый аргумент - это индекс элемента, перед которым нужно вставить, поэтому a.insert (0, x) вставлен в начале списка, а a.insert (len (a), x) эквивалентен a.append ( Икс).
* `list.remove(x)` Удалить первый элемент из списка, значение которого равно x. Это ошибка, если такой элемент отсутствует.
* `list.pop([i])` Удалите элемент в указанной позиции в списке и верните его. Если индекс не указан, a.pop () удаляет и возвращает последний элемент в списке. (Квадратные скобки вокруг i в сигнатуре метода означают, что параметр является необязательным, а не то, что вы должны вводить квадратные скобки в этой позиции. Вы часто увидите эту нотацию в Справочнике по библиотеке Python.)
* `list.clear()` Удалить все элементы из списка. Эквивалентен del a \[:\].
* `list.index(x)` Возвращает индекс в списке первого элемента, значение которого равно x. Это ошибка, если такой элемент отсутствует.
* `list.count(x)` Возвращает количество раз, когда x отображается в списке.
* `list.sort(key=None, reverse=False)` Сортировка элементов списка на месте (аргументы могут использоваться для настройки сортировки, см. sorted () для их объяснения).
* `list.reverse()` элементы списка на место.
* `list.copy()` Верните мелкую копию списка. Эквивалентен \[:\].

View File

@@ -0,0 +1,26 @@
---
title: List Append Method
localeTitle: Метод добавления списка
---
## Метод добавления списка
Существует множество методов для списков, вы можете изучить их все, набрав `help(list)` в вашей консоли python. Одна из них - это функция добавления, которая, как сказано в названии, добавляет приведенный аргумент.
#### Пример использования
```py
words = ["I", "love", "Python"]
words.append("very much")
print(words)
```
#### Вывод
```
["I", "love", "Python", "very much"]
```
Как вы могли заметить, элемент `"very much"` добавлен в список.
#### Дополнительная информация:
Официальную документацию для `append()` можно найти [здесь](https://docs.python.org/3.6/tutorial/datastructures.html)

View File

@@ -0,0 +1,116 @@
---
title: List Comprehension
localeTitle: Учет списка
---
## Учет списка
List Comprehension - это способ перебирать список, чтобы создать новый список, основанный на некоторых условиях. Сначала это может сбивать с толку, но как только вы приспосабливаетесь к синтаксису, он очень мощный и быстрый.
Первым шагом в обучении использованию понимания списка является просмотр традиционного способа перебора списка. Ниже приведен простой пример, который возвращает новый список четных чисел.
```python
# Example list for demonstration
some_list = [1, 2, 5, 7, 8, 10]
# Empty list that will be populate with a loop
even_list = []
for number in some_list:
if number % 2 == 0:
even_list.append(number)
# even_list now equals [2, 8, 10]
```
Сначала создается список с некоторыми числами. Затем вы создаете пустой список, который будет удерживать ваши результаты в цикле. В цикле вы проверяете, является ли каждое число делимым на 2, и если вы добавите его в список четных. Это заняло 5 строк кода, не включая комментарии и пробелы, что в этом примере мало.
Теперь для примера понимания списка.
```python
# Example list for demonstration
some_list = [1, 2, 5, 7, 8, 10]
# List Comprehension
even_list = [number for number in some_list if number % 2 == 0]
# even_list now equals [2, 8, 10]
```
Другой пример, с теми же двумя шагами: Ниже будет создан список номеров, соответствующих номерам в `my_starting_list` умноженном на 7.
```py
my_starting_list = [1, 2, 3, 4, 5, 6, 7, 8]
my_new_list = []
for item in my_starting_list:
my_new_list.append(item * 7)
```
Когда этот код запускается, конечным значением `my_new_list` является: `[7, 14, 21, 28, 35, 42, 49, 56]`
Разработчик, использующий понимание списков, может достичь того же результата, используя следующее понимание списка, которое приводит к тому же `my_new_list` .
```py
my_starting_list = [1, 2, 3, 4, 5, 6, 7, 8]
my_new_list = [item * 7 for item in my_starting_list]
```
Простая формула для записи в способе составления списка:
`my_list = [{operation with input n} for n in {python iterable}]`
Замените `{operation with input n}` однако вы хотите изменить элемент, возвращенный из итерабельного. В приведенном выше примере используется `n * 7` но операция может быть как простой, так и сложной по мере необходимости.
Замените `{python iterable}` любым итерабельным. [Типы последовательности](https://guide.freecodecamp.org/python/sequence-types) будут наиболее распространены. Список был использован в приведенном выше примере, но кортежи и диапазоны также распространены.
Понимание списка добавляет элемент из существующего списка в новый список, если выполняется какое-либо условие. Он более аккуратный, но в большинстве случаев он намного быстрее. В некоторых случаях понимание списка может затруднять читаемость, поэтому разработчик должен взвесить свои параметры, когда вы выбираете использование списка.
## Примеры понимания списка с помощью условных выражений
Поток управления в списках можно контролировать с помощью условных выражений. Для exmaple:
```py
only_even_list = [i for i in range(13) if i%2==0]
```
Это эквивалентно следующему циклу:
```py
only_even_list = list()
for i in range(13):
if i%2 == 0:
only_even_list.append(i)
```
Учет списка также может содержать вложенные условия. Рассмотрим следующий цикл:
```py
divisible = list()
for i in range(50):
if i%2 == 0:
if i%3 == 0:
divisible.append(i)
```
Используя понимание списка, это можно записать так:
```py
divisible = [i for i in range(50) if i%2==0 if i%3==0]
```
Оператор If-Else также может использоваться вместе со списком.
```py
list_1 = [i if i%2==0 else i*-1 for i in range(10)]
```
#### Дополнительная информация:
[Структуры данных Python - Списки](https://docs.python.org/2.7/tutorial/datastructures.html)
[Python for Loops](https://guide.freecodecamp.org/python/for-loop-statements)
[Списки Python](https://guide.freecodecamp.org/python/learn-about-python-lists)
[Python для начинающих - список понятий](http://www.pythonforbeginners.com/basics/list-comprehensions-in-python)

View File

@@ -0,0 +1,25 @@
---
title: List Extend Method
localeTitle: Метод расширения списка
---
## Метод расширения списка
Существует множество методов для списков, вы можете изучить их все, набрав `help(list)` в вашей консоли python. Одна из них - это функция расширения, которая, как сказано в названии, расширяет список, добавляя все элементы списка (переданные как аргумент) до конца.
#### Пример использования
```py
cities = ["San Francisco", "Los Angeles", "New York"]
cities_in_texas = ["San Antonio", "Austin", "Dallas"]
cities.extend(cities_in_texas)
print(cities)
```
#### Вывод
```
["San Francisco", "Los Angeles", "New York", "San Antonio", "Austin", "Dallas"]
```
#### Дополнительная информация:
Официальную документацию для `extend()` можно найти [здесь](https://docs.python.org/3.6/tutorial/datastructures.html)

View File

@@ -0,0 +1,59 @@
---
title: List Index Method
localeTitle: Метод индекса списка
---
## Метод индекса списка
Среди множества функций, которые входят вместе со структурой данных списка, `index()` возвращает первое вхождение / индекс элемента в списке, заданном как аргумент функции.
Списки представляют собой самую основную структуру данных Python и сохраняют список значений по порядку (по сравнению со словарями, порядок которых не имеет значения). Мы извлекаем элементы по числовому индексу.
Имея в виду тот факт, что индексирование начинается с 0 или первый элемент считается индексом 0, давайте посмотрим на некоторые примеры.
#### Пример использования:
```py
numbers = [1, 2, 2, 3, 9, 5, 6, 10]
words = ["I", "love", "Python", "I", "love"]
print(numbers.index(9))
print(numbers.index(2))
print(words.index("I"))
print(words.index("am"))
```
##### Вывод:
```py
4
1
0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'am' is not in list
```
Здесь первый вывод очень очевиден, но второй и третий могут показаться запутанными вначале. Но помните, что `index()` возвращает первое вхождение элемента и, следовательно, в этом случае `1` и `0` являются индексами, где `2` и `"I"` встречаются первыми в списках соответственно.
Кроме того, если элемент не найден в списке, возвращается значение `ValueError` как в случае индексации `"am"` в списке `words` .
#### Дополнительные аргументы:
Вы также можете использовать необязательные аргументы, чтобы ограничить поиск определенной подпоследовательностью списка, как показано в этом примере:
```py
words = ["I","am", "a", "I", "am", "Pythonista"]
print(words.index("am",2,5))
```
##### Вывод:
```
4
```
Здесь, хотя элемент выполняется поиск между индексами 2 (включительно) и 5 (не включительно), но возвращаемый индекс вычисляется относительно начала полного списка, а не аргумента start.
#### Дополнительная информация:
Официальную документацию для `index()` можно найти [здесь](https://docs.python.org/3.6/tutorial/datastructures.html)

View File

@@ -0,0 +1,88 @@
---
title: Map, Reduce, Filter
localeTitle: Карта, Уменьшить, Фильтровать
---
# Карта, Уменьшить & Фильтровать
Большинство инженеров работают со списками, чтобы обрабатывать список заказов / пользователей и т. Д. Анализ списков может быть сложным и загроможденным быстро, если используется несколько циклов for-loop и вложенных циклов. Следовательно, эти вышеописанные методы могут оптимизировать использование операций с списками.
## карта
Если ваша задача - применить конкретный метод к каждому элементу списка, карта будет полезна. Скажем, у вас есть список значений степени, и вы хотите преобразовать все эти значения в список значений в единицах Fahrenheit.
#### Пример использования
```py
inputs = [10,32,5,40,25]
def degreesToFahren(deg):
fahrenheit = (9.0/5)*deg +32
return fahrenheit
# The most common way of doing this
result=[]
for i in inputs:
iTofahren = degreesToFahren(i)
result.append(iTofahren)
print(result) # [50.0, 89.6, 41.0, 104.0, 77.0]
```
```py
# Using Map
result = list(map(degreesToFahren,inputs))
print(result) # [50.0, 89.6, 41.0, 104.0, 77.0]
```
Как вы могли заметить, использование карты - это просто операция с одним лайнером. Как правило, если у вас есть данные = `[a1,a2,...,an]` и функция `f()` , тогда `map(f,data):` возвращает итератор по `f(a1),f(a2)...f(an).` use `list()` чтобы преобразовать объект итератора в список python.
## Фильтр
Функция фильтра удаляет данные в списке, который вам нужен / не нужен, следовательно, имя. Скажем, вы хотите отфильтровать список на основе значений, которые вам не нужны, например, значения выше 2.
#### Пример использования
```py
data = [1.2,2.5,5.8,0.4,4.7,9.9]
result = list(filter(lambda x:x > 2,data))
print(result)
```
#### Вывод
```
[2.5, 5.8, 4.7, 9.9]
```
Это также простой 1 лайнер, похожий на вышеприведенную функцию map (). Обратитесь к руководству по лямбда-функциям, если этот термин незначителен.
## уменьшить
От создателя Python, Guido van Rossum `"Use functools.reduce if you really need it; however, 99% of the time an explicit for loop is more readable"`
Как правило, это применить функцию `f()` к элементам данных в списке и использовать этот результат для следующего значения в списке. Визуально,
Данные = \[a 1 , a 2 , ..., a n \] функция = f (x, y)
снизить (е, данных): Шаг 1: val 1 = f (a 1 , a 2 ) Шаг 2: val 2 = f (val 1 , a 3 ) Шаг 3: val 3 = f (val 2 , a 4 ) , , , Шаг n-1: val n-1 = f (val n-2 , a n )
Например, вы хотите умножить все числа в списке.
#### Пример использования
```py
from functools import reduce
input = [1,2,3,4,5,6]
multiplier = lambda x,y:x*y
answer = reduce(multiplier,input)
print(answer)
```
#### Вывод
```
720
```
Однако вышеизложенное может быть вычислено с использованием простого цикла, и использование этих методов зависит от предпочтений.
#### Дополнительная информация:

View File

@@ -0,0 +1,31 @@
---
title: List Pop Method
localeTitle: Список методов поп-музыки
---
# Функция Pop
Метод pop () удаляет и возвращает последний элемент из списка. Существует необязательный параметр, индекс элемента, который должен быть удален из списка. Если индекс не указан, a.pop () удаляет и возвращает последний элемент в списке. Если индекс, переданный методу pop (), не находится в диапазоне, он вызывает IndexError: индекс pop index вне диапазона.
#### Пример использования
\`\` \`Ру города = \['Нью-Йорк', 'Даллас', 'Сан-Антонио', 'Хьюстон', 'Сан-Франциско'\];
print "City popped is:", cities.pop () print "Город по индексу 2:", cities.pop (2) \`\` \`
\#### Выход `City popped is : San Francisco City at index 2 is : San Antonio`
#### Основные функции стека
Метод `pop()` часто используется вместе с `append()` для реализации базовых функций стека в приложении Python.
```py
stack = []
for i in range(5):
stack.append(i)
while len(stack):
print(stack.pop())
```
\#### Дополнительная информация: Официальную документацию для `pop()` можно найти [здесь](https://docs.python.org/3.6/tutorial/datastructures.html)

View File

@@ -0,0 +1,40 @@
---
title: List Remove Method
localeTitle: Список Удалить метод
---
## Список Удалить метод
Метод `remove()` удаляет аргумент, предоставленный ему из списка.
#### Пример использования
```py
words = ["I", "love", "Python"]
words.remove("I")
print(words)
```
#### Вывод
```py
["love","Python"]
```
Обратите внимание, что он возвращает ошибку, если элемент, который нужно удалить, не найден в списке, как показано в примере ниже.
```py
kiss = ["keep", "it", "simple", "stupid"]
kiss.remove("complex")
print(kiss)
```
#### Вывод
```
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
```
#### Дополнительная информация:
Более подробную информацию о `remove()` можно найти [здесь.](https://docs.python.org/3.6/tutorial/datastructures.html)

View File

@@ -0,0 +1,109 @@
---
title: List Sort Method
localeTitle: Метод сортировки списка
---
## Метод сортировки списка
Списки Python имеют встроенный метод `sort()` который изменяет список на месте и функцию `sorted()` которая создает новый отсортированный список из итерабельного.
list.sort (key = ..., reverse = \[True / False\])
### параметры
Для этого метода есть два необязательных параметра _key_ - входное значение для ключевого параметра должно быть функцией, которая принимает один аргумент и возвращает значение, используемое для сравнения, для сортировки элементов в списке _обратное = \[значение\]_ _value = True_ : сортирует элементы в списке в порядке убывания _value = False_ : сортирует элементы в списке в порядке возрастания. Это считается значением по умолчанию. Обратите внимание, что метод `sort()` не возвращает никакого значения. Он изменяет исходный список.
### Пример использования
```py
a = [4, 2, 5, 3, 1]
a.sort()
print a # prints [1, 2, 3, 4, 5]
b = ['free', 'code', 'camp']
b.sort()
print b # prints ['camp', 'code', 'free']
```
Рассмотрим пример с **обратным** параметром
```py
a = [4, 2, 5, 3, 1]
#Sorts the list in descending order
a.sort(reverse=True)
print a # prints [5, 4, 3, 2, 1]
```
Если вы хотите отсортировать список на основе собственной функции, используйте параметр **ключа** . Ниже приведен пример сортировки строк в списке по длине, в порядке возрастания
```py
a = ["hello", "hi", "hey"]
#The built-in len() function is given as an input to key parameter to sort the strings by length
a.sort(key = len)
print a # prints ['hi', 'hey', 'hello']
```
Вот еще один пример, в котором список содержит кортежи (имя, возраст). Ниже показано, как сортировать список по возрасту в порядке возрастания.
```py
#Consider the second element in the tuple for sorting
>>> def compareByAge(element):
... return element[1]
b = [('Adam', 20), ('Rahman', 30), ('Rahul', 25)]
#Sort the list by age
b.sort(key = compareByAge)
#Output
print b # prints [('Adam', 20), ('Rahul', 25), ('Rahman', 30)]
```
### Основы сортировки
Простое восходящее сортирование очень просто - просто вызовите функцию sorted (). Он возвращает новый отсортированный список:
```python
>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
```
Вы также можете использовать метод list.sort () списка. Он изменяет список на месте (и возвращает None, чтобы избежать путаницы). Обычно это менее удобно, чем отсортировано (), но если вам не нужен исходный список, он немного эффективнее.
```python
>>> a = [5, 2, 3, 1, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
```
Другое отличие состоит в том, что метод list.sort () определен только для списков. Напротив, функция sorted () принимает любой итерабельный.
```python
>>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]
```
#### Детали реализации
Если вы хотите узнать подробности о реализации функции сортировки, см. [Здесь](http://svn.python.org/projects/python/trunk/Objects/listsort.txt) алгоритм, временную сложность и т. Д. Вкратце, функция сортировки использует алгоритм TimSort, который, согласно разработчикам Python, представляет собой: -
> адаптивное, стабильное, естественное объединение, скромно называемое timsort (эй, я заработал это ). Он обладает сверхъестественными характеристиками на многих виды частично упорядоченных массивов (требуется меньше, чем lg (N!)), и всего лишь N-1), но так же быстро, как предыдущая высоконадежная модель данных Python гибрид на случайных массивах.
#### sort () Параметры
По умолчанию sort () не требует дополнительных параметров. Однако он имеет два необязательных параметра:
* reverse - если true, отсортированный список отменяется (или сортируется в порядке убывания)
* key - функция, которая служит ключом для сравнения сортировки
#### Дополнительная информация:
Более подробную информацию о `sort()` можно найти [здесь](https://docs.python.org/3/library/functions.html#sorted)
Более подробную информацию о sort () и sorted () можно найти [здесь](https://docs.python.org/3.6/tutorial/datastructures.html)
Более подробную информацию о sort () и sorted () можно найти [здесь](https://docs.python.org/3.6/tutorial/datastructures.html) .