Операции с коллекциями
Множества, словари, списки и строки - это коллекции.
Для следующего кода будет такой результат:
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() чтобы вывести фразу с количеством друзей на экран.