python_math_stat/docs/python/lists.md

129 lines
4.6 KiB
Markdown
Raw Normal View History

2023-10-12 21:32:13 +03:00
## Lists []
- Пример листа `list = [1, 'num', 3.33]` *Можно создавать эл-ты разных ТД*
- Длину можно узнать `len()` (выдаст именно ко-во эл-во, не индексы)
2023-10-23 15:34:41 +03:00
- из списка подряд цифры через пробел
```python
L = [1, 2, 3, 4, 5]
print(*L)
```
2023-10-12 21:32:13 +03:00
- Выбрать по индексу `list[index]` -> выдаст эл-т
- Вырезать по индексу `list[:2]` -> выдаст все выбранные
- __МОЖНО__ менять эл-ты в списке `list[index]='hi'`
- Добавить эл-т в список __`.append()`__, __`.insert()`__:
```python
list.append('new item') # добавить эл-т в конце списки
list.insert(index,'new item') # доб эл-т в нужное место списка
```
- убрать эл-т из списка __`.pop()`__, __`.remove()`__:
```python
list.pop() # удаляет последний эл-т в списке
list.pop(значение) # удаляет по значению - НЕ ВОЗВРАЩАЕТ
deleted = list.pop() = [...]
deleted = list.remove(значение) - удаляет первое попавшееся значение
```
- Сортировка __`.sort()`__, __`.reverse()`__:
```python
list.sort() - НЕ ВОЗВРАЩАЕТ / меняет первоначальную переменную
list.reverse() - с большего к меньшему
```
## Цикл for
- Посл-ти: строки, списки, словари, мн-ва и др. - для перебора используется цикл
```python
list = [1,2,3,4,5]
for number(любое значение) in list:
print(number) -> 1
2
3
4
5
print('Hi') #выдаст столько раз сколько эл-тов в списке
```
- Для подсчета суммы значений в списке
```python
sum = 0
for num in list:
sum = sum + num
print (sum) -> 10
2023-10-13 13:12:24 +03:00
```
2023-10-23 15:34:41 +03:00
## Nested Loops - вложенные циклы
- треугольник из смайликов `\U0001f600`
```python
for num in range(10):
count=0
emoticons = ''
while count <=num:
emoticons+='\U0001f600'
count+=1
print (emoticons) -> 😀
😀😀
😀😀😀
😀😀😀😀
😀😀😀😀😀
😀😀😀😀😀😀
😀😀😀😀😀😀😀
😀😀😀😀😀😀😀😀
😀😀😀😀😀😀😀😀😀
😀😀😀😀😀😀😀😀😀😀
```
- то же, но без `while`
```python
for num in range(10):
emoticons = ''
for count in range(num+1):
emoticons+='\U0001f600'
print(emoticons)
```
#### Мультприкация строк
```python
for num in range(1,11): # не с -, т.к. 0 = 0, пропуск -> 1) 1*1= 1 \ 2) 1*2= 2 \ 3) 1*3= 3
print('\U0001f600'*num) # при умножении строки на число мы получаем строку несколько раз, а for сделал это range (1,11)(т.е. 10) раз
```
2023-10-23 16:12:51 +03:00
==
```python
count = 1
while count<11:
print ('\U0001ff00' * count)
count += 1
```
## Nested List
```python
list = [[1,2,3],[4,5,6],[7,8,9]]
print (len(list)) -> 3 # 3 эл-та списка(компоненты) 1) 1,2,3 2) 4,5,6....
print (len(list [1])) -> 3 # (эл-ты внутри 1 вложенного списка (4,5,6))
```
- Чтобы обратиться к эл-ту списка внутри списка:
```python
print(list[1][1]) -> 5
```
- операции с вложенными списками
```python
for inner_list in list:
print (inner_list)-> [1,2,3]
[4,5,6]
[7,8,9]
```
- операции с эл-тами вложенных списков
```python
for inner_list in list:
for number in inner_list:
print (inner_list)-> 1
2
3
4
...
ИЛИ
[[print (number) for number in inner_list] for inner_list in list] # от меньшего (эл-ты влож списков) к большему (к самим влож спискам)
```
-
2023-10-23 15:34:41 +03:00
2023-11-22 23:56:55 +03:00
## Особенности
- Для списков или картежей можно использовать `x.count()`:
```python
text = [1,2,3,1,2]
print(text.count(1)) -> 2 # Элемент 1 встречается 2 раза
```