mirror of
https://github.com/satwikkansal/wtfpython
synced 2024-11-21 18:54:20 +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