python_math_stat/docs/python/lists.md
2023-11-22 23:56:55 +03:00

4.6 KiB
Raw Blame History

Lists []

  • Пример листа list = [1, 'num', 3.33] Можно создавать эл-ты разных ТД
  • Длину можно узнать len() (выдаст именно ко-во эл-во, не индексы)
  • из списка подряд цифры через пробел
L = [1, 2, 3, 4, 5]
print(*L)
  • Выбрать по индексу list[index] -> выдаст эл-т
  • Вырезать по индексу list[:2] -> выдаст все выбранные
  • МОЖНО менять эл-ты в списке list[index]='hi'
  • Добавить эл-т в список .append(), .insert():
list.append('new item') # добавить эл-т в конце списки
list.insert(index,'new item') # доб эл-т в нужное место списка
  • убрать эл-т из списка .pop(), .remove():
list.pop() # удаляет последний эл-т в списке

list.pop(значение) # удаляет по значению - НЕ ВОЗВРАЩАЕТ

deleted = list.pop() = [...] 

deleted = list.remove(значение)  - удаляет первое попавшееся значение
  • Сортировка .sort(), .reverse():
list.sort() - НЕ ВОЗВРАЩАЕТ / меняет первоначальную переменную
list.reverse() - с большего к меньшему 

Цикл for

  • Посл-ти: строки, списки, словари, мн-ва и др. - для перебора используется цикл
list = [1,2,3,4,5]
for number(любое значение) in list:
    print(number) -> 1
                     2
                     3
                     4
                     5
    print('Hi') #выдаст столько раз сколько эл-тов в списке
  • Для подсчета суммы значений в списке
sum = 0
for num in list:
    sum = sum + num
print (sum) -> 10

Nested Loops - вложенные циклы

  • треугольник из смайликов \U0001f600
for num in range(10):
    count=0
    emoticons = ''
    while count <=num:
        emoticons+='\U0001f600'
        count+=1
    print (emoticons) -> 😀
                         😀😀
                         😀😀😀
                         😀😀😀😀
                         😀😀😀😀😀
                         😀😀😀😀😀😀
                         😀😀😀😀😀😀😀
                         😀😀😀😀😀😀😀😀
                         😀😀😀😀😀😀😀😀😀
                         😀😀😀😀😀😀😀😀😀😀
  • то же, но без while
for num in range(10):
    emoticons = ''
    for count in range(num+1):
        emoticons+='\U0001f600'
    print(emoticons)

Мультприкация строк

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) раз

==

count = 1
while count<11:
    print ('\U0001ff00' * count)
    count += 1

Nested List

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))
  • Чтобы обратиться к эл-ту списка внутри списка:
print(list[1][1]) -> 5 
  • операции с вложенными списками
for inner_list in list:
    print (inner_list)-> [1,2,3]
                         [4,5,6]
                         [7,8,9]
  • операции с эл-тами вложенных списков
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] # от меньшего (эл-ты влож списков) к большему (к самим влож спискам)

Особенности

  • Для списков или картежей можно использовать x.count():
    text = [1,2,3,1,2]
    print(text.count(1)) -> 2 # Элемент 1 встречается 2 раза