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

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

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