Операции с коллекциями
Множества, словари, списки и строки - это коллекции.
Для следующего кода будет такой результат:
string = 'По Борнео и Ямайке ходит слон в трусах и майке'
new_list = list(string)
new_set = set(string)
print('Список из строки: ' + str(new_list))
print('Сет из строки: ' + str(new_set))Отрицательные индексы
работают со всеми коллекциями
# Обратимся к элементам списка по отрицательным индексам friends = ['Сергей', 'Соня', 'Миша', 'Дима', 'Алина'] print(friends[-3]) # Миша print(friends[-5]) # Сергей # То же и со строкой monument_string = 'Я памятник себе воздвиг нерукотворный' print(monument_string[-2]) # ы print(monument_string[-37]) # Я
Разобрать строку на слова: метод split()
milk_str = 'молоковоз' # Применяем метод split() с аргументом 'о':
new_list = milk_str.split('о')
print(new_list)
# Будет напечатано: ['м', 'л', 'к', 'в', 'з']counter_str = 'Раз-два-три-четыре-пять, вышел зайчик погулять'
# Преобразуем строку в список, а разделителем будет дефис
counter_list = counter_str.split('-')
print(counter_list)
# результат:['Раз', 'два', 'три', 'четыре', 'пять, вышел зайчик погулять']
# Преобразуем строку в список, а разделителем будет дефис
counter_list = counter_str.split('-')
print(counter_list)
# Создадим ещё одну строку
blok_str = 'Ночь. Улица. Фонарь. Аптека'
# Разобьём фразу по словам.
# Разделителем будет служить сочетание точки и пробела:
blok_list = blok_str.split('. ')
print(blok_list)Делим строку на слова:
poem_str = 'Дама сдавала багаж'
# Применяем к строке метод split(), в скобках указываем пробел в кавычках:
words_list = poem_str.split(' ')
# Печатаем результат:
print(words_list)
#результат: ['Дама', 'сдавала', 'багаж']words_list = ['раз', 'два', 'три', 'четыре', 'пять', 'вышел', 'зайчик', 'погулять'] # Метод join() "склеивает" элементы списка, # создавая строку, в которой # элементы исходного списка разделены текстовым символом; # для разделения применим дефис: new_string = '-'.join(words_list) print(new_string)
#Если указать в аргументах пробел, то список будет объеденен с пробелами #Если указать в аргументах просто кавычки, элементы списка сосльются в одно #слово new_string = ' '.join(words_list) # раз два три четыре пять вышел зайчик погулять new_string = ''.join(words_list) # раздватричетырепятьвышелзайчикпогулять
Примеры работы с словарями и списками
Как добавить и распечатать элементы списка или словаря:
DATABASE = {
'Серёга': 'Омск',
'Соня': 'Москва',
'Миша': 'Москва',
'Дима': 'Челябинск',
'Алина': 'Красноярск',
'Егор': 'Пермь',
'Коля': 'Красноярск'
}
# ------------------Первый вариант-----------------------------------
list_of_friends=','.join(DATABASE.values())
print(list_of_friends)
# -----------------Второй вариант-------------------------------------
friends_string = ''
for name in city:
friends_string = friends_string + " " + name
print(friends_string)
# ----------------Третий вариант--------------------------------------
lst = [print(city) for city in DATABASE.values()]
# в третьем варианте вывод будет в столбикnew_list = list(string) # cоздает список
new_set = set(string) # создает множество
print(friends[-3]) # печать элемента списка по индексу
counter_list = counter_str.split() # элементы по признаку в скобках '-'
new_string = '-'.join(words_list) # аргументы могут быть разные '', ' '...
new_string = ''.join(words_list) # раздватричетырепятьвышелзайчикпогулять
Convert String to List in Python (English)
Давайте поправим функцию process_friend(name, query)
Она будет принимать на вход какое-то имя и запрос. И с помощью написанных
условий возвращать ту или иную фразу, в зависимости от того, есть имя в словаре или нет.
В условии нужно сравнить вопрос в переменной query вопрос «ты где?»
Внутри функции вместо print() укажем везде return, а строку «<неизвестный запрос>» заключите в угловые скобки
Код для функции будет выглядеть следующим образом:
def функция(имя, запрос):
если имя есть в словаре DATABASE:
если запрос == 'ты где?':
город = словарь[имя]
возвращаем f'{имя} в городе {город}'
иначе:
возвращаем '<неизвестный запрос>'
иначе:
возвращаем f'У тебя нет друга по имени {имя}'
35 строку кода удалим, ведь у нас уже есть вызов функции на 36 строке.
И последний штрих — вызовы функции process_anfisa() в конце кода замените на process_query() и там, где нет имени, добавим имя 'Анфиса'. Получилось разобраться? :)
Она печатается при вызове функции process_query в конце кода.
Цепочка выполнения будет такая:
1) Печатаем вызов функции print(process_query('Анфиса, сколько у меня друзей?'))
2) Следом начинает работу эта функция и по итогу срабатывает вызов process_anfisa() с вопросом «сколько у меня друзей?»
3) В результате работы process_anfisa возвращается вызов функции format_friends_count()
4) И из format_friends_count() возвращается в первый пункт, где выполнение всех шагов ждёт функция print() чтобы вывести фразу с количеством друзей на экран.