mirror of
https://github.com/satwikkansal/wtfpython
synced 2024-11-22 11:04:25 +01:00
Translate All sorted? example
This commit is contained in:
parent
8f60bc1d0b
commit
f84272fc5c
42
translations/README-ru.md
vendored
42
translations/README-ru.md
vendored
@ -2843,3 +2843,45 @@ NameError: name '_another_weird_name_func' is not defined
|
|||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
### ▶ Все ли отсортировано? *
|
||||||
|
|
||||||
|
<!-- Example ID: e5ff1eaf-8823-4738-b4ce-b73f7c9d5511 -->
|
||||||
|
|
||||||
|
```py
|
||||||
|
>>> x = 7, 8, 9
|
||||||
|
>>> sorted(x) == x
|
||||||
|
False
|
||||||
|
>>> sorted(x) == sorted(x)
|
||||||
|
True
|
||||||
|
|
||||||
|
>>> y = reversed(x)
|
||||||
|
>>> sorted(y) == sorted(y)
|
||||||
|
False
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 💡 Объяснение:
|
||||||
|
|
||||||
|
- Метод `sorted` всегда возвращает список, а сравнение списка и кортежа всегда возвращает `False`.
|
||||||
|
|
||||||
|
- ```py
|
||||||
|
>>> [] == tuple()
|
||||||
|
False
|
||||||
|
>>> x = 7, 8, 9
|
||||||
|
>>> type(x), type(sorted(x))
|
||||||
|
(tuple, list)
|
||||||
|
```
|
||||||
|
|
||||||
|
- В отличие от метода `sorted, метод `reversed` возвращает итератор. Почему? Потому что сортировка требует, чтобы итератор либо изменялся на месте, либо использовал дополнительный контейнер (список), в то время как реверсирование может работать просто путем итерации от последнего индекса к первому.
|
||||||
|
|
||||||
|
- Поэтому при сравнении `sorted(y) == sorted(y)` первый вызов `sorted()` будет потреблять итератор `y`, а следующий вызов просто вернет пустой список.
|
||||||
|
|
||||||
|
```py
|
||||||
|
>>> x = 7, 8, 9
|
||||||
|
>>> y = reversed(x)
|
||||||
|
>>> sorted(y), sorted(y)
|
||||||
|
([7, 8, 9], [])
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
Loading…
Reference in New Issue
Block a user