ответвлено от main/python-labs
report.md
Этот коммит содержится в:
@@ -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), 'строка'}
|
||||
|
||||
Ссылка в новой задаче
Block a user