Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 18, 2018 20:29:01

michsh
Зарегистрирован: 2018-12-18
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Простой вопрос по аргументу функции sorted() который вогнал меня в тупик

Доброго времени суток, решил изучать питон по Книге Эрика Матиза. Завис на задании:

* Используйте функцию sorted() для вывода списка в алфавитном порядке без изменения списка.

Как писать аргумент автор не указал, но нашел в интернете. При использование sorted(reverse=True) также как при использовании метода .reverse порядок вывода не меняется. С чем это связано?

 countries = ['япония', 'сша', 'германия', 'китай']
print (countries)
print ("\n" + str(sorted(countries)).title())
print ("\n" + str(countries))
print ("\n" + str(sorted(countries, reverse=True)).title())

Также перед этим тренировался и хотел использовать .strip() для устранении пробелов в списке. Но это также не привело ни к каким результатам. Почему?

 countries = [' япония ', ' сша ', ' германия ', ' китай ']
print (countries)
print ("\n" + str(sorted(countries)).title().strip())
print ("\n" + str(countries))
print ("\n" + str(sorted(countries, reverse=True)).title().strip())

Прикреплённый файлы:
attachment images.zip (64,2 KБ)

Офлайн

#2 Дек. 18, 2018 20:54:04

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

Простой вопрос по аргументу функции sorted() который вогнал меня в тупик

Вывод переворачивается:
https://docs.python.org/3/howto/sorting.html#ascending-and-descending



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#3 Дек. 18, 2018 21:04:18

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Простой вопрос по аргументу функции sorted() который вогнал меня в тупик

michsh
Доброго времени суток, решил изучать питон по Книге Эрика Матиза. Завис на задании:
 >>> countries = ['япония', 'сша', 'германия', 'китай']
>>> print(sorted(countries))
['германия', 'китай', 'сша', 'япония']
>>> print(sorted(countries,reverse = True))
['япония', 'сша', 'китай', 'германия']
>>> countries
['япония', 'сша', 'германия', 'китай']
>>> print(sorted(countries,key = lambda x : x[-1]))
['сша', 'китай', 'япония', 'германия']
>>> countries.sort()
>>> countries
['германия', 'китай', 'сша', 'япония']
>>>
функция sorted() не изменяет объект а создает новый его можно присвоить переменной а можно вывести.пример с reverse показывает что список развернут а key = lambda x : x сортирует по последней букве. метод sort() изменяет список.
michsh
strip() для устранении пробелов в списке
 >>> countries = [' япония ', ' сша ', ' германия ', ' китай ']
>>> countries = list(map(str.strip, countries))
>>> countries
['япония', 'сша', 'германия', 'китай']
>>>
или так
 >>> countries = [' япония ', ' сша ', ' германия ', ' китай ']
>>> countries = [ i.strip() for i in countries]
>>> countries
['япония', 'сша', 'германия', 'китай']
>>>
 >>> countries = [' япония ', ' сша ', ' германия ', ' китай ']
>>> for i,x in enumerate(countries):
	countries[i] = x.strip()
	
>>> countries
['япония', 'сша', 'германия', 'китай']

Офлайн

#4 Дек. 18, 2018 21:12:15

michsh
Зарегистрирован: 2018-12-18
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Простой вопрос по аргументу функции sorted() который вогнал меня в тупик


marvellik
DamMercul
Спасибо большое за информацию, буду копать в эту сторону. Премного благодарю за помощь!

Офлайн

#5 Дек. 19, 2018 01:28:20

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Простой вопрос по аргументу функции sorted() который вогнал меня в тупик

  
>>> countries = [' япония ', ' сша ', ' германия ', ' китай ']
>>> list(sorted(map(str.title, map(str.strip, countries))))
['Германия', 'Китай', 'Сша', 'Япония']
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version