Определяем количество включений значения с помощью функции count()
Чтобы определить, сколько раз какое-либо значение встречается в списке, используйте функцию count():
>>>> marxes = ['Groucho', 'Chico', 'Harpo']
>>>> marxes.count('Harpo')
>1
>>>> marxes.count('Bob')
>0
>>>> snl_skit = ['cheeseburger', 'cheeseburger', 'cheeseburger']
>>>> snl_skit.count('cheeseburger')
>3
Преобразование списка в строку с помощью функции join()
В подразделе «Объединяем строки с помощью функции join()» раздела «Строки» главы 2 функция join() рассматривается более подробно, но взгляните еще на один пример того, что можно сделать с ее помощью:
>>>> marxes = ['Groucho', 'Chico', 'Harpo']
>>>> ', '.join(marxes)
>'Groucho, Chico, Harpo'
Но погодите, вам может показаться, что нужно делать все наоборот. Функция join() предназначается для строк, а не для списков. Вы не можете написать marxes.join(', '), несмотря на то что интуитивно это кажется правильным. Аргументом для функции join() является эта строка или любая итерабельная последовательность строк, включая список, и она возвращает строку. Если бы функция join() была только методом списка, вы не смогли бы использовать ее для других итерабельных объектов вроде кортежей и строк. Если вы хотите, чтобы она работала с любым итерабельным типом, нужно написать особый код для каждого типа, чтобы обработать объединение. Будет полезно запомнить: join() противоположна split(), как показано здесь:
>>>> friends = ['Harry', 'Hermione', 'Ron']
>>>> separator = ' * '
>>>> joined = separator.join(friends)
>>>> joined
>'Harry * Hermione * Ron'
>>>> separated = joined.split(separator)
>>>> separated
>['Harry', 'Hermione', 'Ron']
>>>> separated == friends
>True
Меняем порядок элементов с помощью функции sort()
Вам часто нужно будет изменять порядок элементов по их значениям, а не по смещениям. Для этого Python предоставляет две функции:
• функцию списка sort(), которая сортирует сам список;
• общую функцию sorted(), которая возвращает отсортированную копию списка.
Если элементы списка являются числами, они по умолчанию сортируются по возрастанию. Если они являются строками, то сортируются в алфавитном порядке:
>>>> marxes = ['Groucho', 'Chico', 'Harpo']
>>>> sorted_marxes = sorted(marxes)
>>>> sorted_marxes
>['Chico', 'Groucho', 'Harpo']
sorted_marxes — это копия, ее создание не изменило оригинальный список:
>>>> marxes
>['Groucho', 'Chico', 'Harpo']
Но вызов функции списка sort() для marxes изменит этот список:
>>>> marxes.sort()
>>>> marxes
>['Chico', 'Groucho', 'Harpo']
Если все элементы вашего списка одного типа (в списке marxes находятся только строки), функция sort() отработает корректно. Иногда можно даже смешать типы — например, целые числа и числа с плавающей точкой, — поскольку в рамках выражений они конвертируются автоматически: