Найти - Пользователи
Полная версия: Простой вопрос по аргументу функции sorted() который вогнал меня в тупик
Начало » Python для новичков » Простой вопрос по аргументу функции sorted() который вогнал меня в тупик
1
michsh
Доброго времени суток, решил изучать питон по Книге Эрика Матиза. Завис на задании:

* Используйте функцию 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())
DamMercul
Вывод переворачивается:
https://docs.python.org/3/howto/sorting.html#ascending-and-descending
marvellik
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
['япония', 'сша', 'германия', 'китай']
michsh

marvellik
DamMercul
Спасибо большое за информацию, буду копать в эту сторону. Премного благодарю за помощь!
py.user.next
  
>>> countries = [' япония ', ' сша ', ' германия ', ' китай ']
>>> list(sorted(map(str.title, map(str.strip, countries))))
['Германия', 'Китай', 'Сша', 'Япония']
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB