Пользователь № 15 аудитории Ж-202 3 недель назад
Родитель 837135fa94
Сommit 09078e3a6e

@ -170,7 +170,7 @@ False
>>> ss1[17:3:-2] >>> ss1[17:3:-2]
'омсаот ' 'омсаот '
``` ```
Так как индекс 17 и -4 (4-й символ с конца строки) - одно и то же при 21-ом элементе, то получится то же самое, что и выше:
```py ```py
>>> ss1[-4:3:-2] >>> ss1[-4:3:-2]
'омсаот ' 'омсаот '
@ -192,7 +192,7 @@ TypeError: 'str' object does not support item assignment
Меня зовут Меня зовут
Грудинин Е.К. Грудинин Е.К.
``` ```
Создадим еще несколько объектов разных типов данных
```py ```py
>>> a = 10; a; type(a) >>> a = 10; a; type(a)
10 10
@ -230,8 +230,7 @@ True
10 10
>>> stup[-8::2] >>> stup[-8::2]
[0, 1, 1, 1] [0, 1, 1, 1]
``` ```
В последнем случае получилось, что, в результате среза исходного списка stup длиной в 9 элементов, мы получили список длиной в 4 элемента. Это можно объянсить так: так как в срезе мы указали, что выборка элементов (срез) будет происходить от 8-го элемента с конца (т.к. знак минус перед 8) и до посленего элемента. Так как шаг был указан равным 2, то получаем: 8 / 2 = 4 элемента войдут в новый список.
```py ```py
>>> spis1[1]='Список'; spis1 >>> spis1[1]='Список'; spis1
@ -252,7 +251,7 @@ True
[111, 'Список', (5-9j), 'New item', 'New item'] [111, 'Список', (5-9j), 'New item', 'New item']
[111, 'Список', (5-9j), 'New item'] [111, 'Список', (5-9j), 'New item']
``` ```
Можно заметить, что последняя операция не сохраняет изменения списка spis1, а только отображает измененый список. Что не сохраняет изменения списка spis1, а только отображает измененый список.
```py ```py
>>> spis1.append(ss1b); spis1 >>> spis1.append(ss1b); spis1
[111, 'Список', (5-9j), 'New item', 'Меня зовут \n Ivanov I.I.'] [111, 'Список', (5-9j), 'New item', 'Меня зовут \n Ivanov I.I.']
@ -289,7 +288,7 @@ True
[[100, 2], [3, 4], 5, 6, 7] [[100, 2], [3, 4], 5, 6, 7]
[[100, 2], [3, 4], 5, 200, 7] [[100, 2], [3, 4], 5, 200, 7]
``` ```
Можно заметить, что при изменении в cp (копии) части вложенного списка, изменения затронули и исходный список spis2. А вот изменение простого объекта - целочисленной переменной, имеющей значение 6, на значение 200, - не повлекло за собой изменения в исходном списке. Можно заметить, что при изменении в cp (копии) части вложенного списка, изменения затронули и исходный список spis2.
```py ```py
>>> a = [1,2,2,3,3,3,4,4,4,4] >>> a = [1,2,2,3,3,3,4,4,4,4]
@ -311,7 +310,7 @@ True
>>> spis1 >>> spis1
[111, 78, 'Второй элемент', (5-9j), 'New item', 'Меня зовут \n Ivanov I.I.'] [111, 78, 'Второй элемент', (5-9j), 'New item', 'Меня зовут \n Ivanov I.I.']
``` ```
Заметим, что при изменении spis2[0][1] = 78, касающегося на первый взгляд только списка spis2, изменился и список spis1, который является составной чатсью (а имеено первым элементом) списка spis2. Это происходит потому, что имя списка - это переменная, указывающая на адрес списка (точнее: на адрес его первого элемента). Поэтому справедливо сказать, что записью spis2=[spis1,[4,5,6,7]] мы в качестве первого элемента списка spis2 передаем не просто какую-то копию списка spis1, а передаем адрес его (spis1) первого элемента. Такая передача называется передача по сслыке. Именно поэтому изменение первого элемента списка spis2 влечет за собой изменение не только в самом spis2, но и в его первом элементе - списке spis1. Заметим, что при изменении spis2[0][1] = 78, касающегося на первый взгляд только списка spis2, изменился и список spis1, который является составной чатсью списка spis2.
```py ```py
>>> ls = [1,'два',True,[4,4,4,4]]; ls >>> ls = [1,'два',True,[4,4,4,4]]; ls
[1, 'два', True, [4, 4, 4, 4]] [1, 'два', True, [4, 4, 4, 4]]
@ -372,7 +371,6 @@ TypeError: 'tuple' object does not support item assignment
>>> dict(zip(values,keys)) >>> dict(zip(values,keys))
{'один': 11, 'два': 22, 'три': 33, 'четыре': 44, 'пять': 55} {'один': 11, 'два': 22, 'три': 33, 'четыре': 44, 'пять': 55}
``` ```
Предпоследняя операция выводит словарь, число элеиментов которого равно пяти. Количество элементов имеено пять, а не семь, потому, что функция zip объединяет два объекта (в нашем случае кортеж с ключами и массив со значениями). Так как кортеж содержит семь элементов, а массив - пять, то функция zip сделает из двух этих объектов кортеж из пяти элементов. Никакого "зацикливания" не будет.
### 8.4 Множества. Операции с множествами ### 8.4 Множества. Операции с множествами
```py ```py
@ -387,7 +385,7 @@ True
>>> mnoz1.remove('линия связи'); mnoz1 >>> mnoz1.remove('линия связи'); mnoz1
{'микропроцессор', 'датчик', 'реле', 'двигатель'} {'микропроцессор', 'датчик', 'реле', 'двигатель'}
``` ```
Заметим, что логическое значение True, при создании сножества, воспринимается как 1. Поэтому ниже можно заметить, что значение True не вошло в множество, так как есть 1. Заметим, что значение True = 1 не вошло в множество, так как уже есть 1.
```py ```py
>>> mnoz2 = {'строка',1,True,(5,6),1,'строка', False};mnoz2 >>> mnoz2 = {'строка',1,True,(5,6),1,'строка', False};mnoz2
{False, 1, (5, 6), 'строка'} {False, 1, (5, 6), 'строка'}

Загрузка…
Отмена
Сохранить