Я не знаю ни одной библиотеки, которая бы делала что-либо подобное, поэтому я бы просто сделал программу. Я позволю вам попробовать разработать свою собственную программу (цель - изучить: P), вот несколько советов, если вы застряли:
Сначала попробуйте получить подстроку (из list
), соответствующую заданному местоположению, реализовав, например, функцию getWord(location:str, mylist:list)
такую, что:
getWord('London, United Kingdom', list) # Gives 'United Kingdom'
getWord('BerlinGerman', list) # Gives 'Berlin'
# and so on...
Как только это будет сделано, вы просто нужно создать новый столбец, содержащий результат этой функции.
Чтобы выполнить эту функцию, для каждого элемента списка вам нужно будет проверить, является ли он подстрокой местоположения. Вы можете использовать, например, для этого генератор. Вот пример использования:
matches = [x for x in mylist if x < 2] # filter all elements of mylist that are < 2
Просто заменив if x < 2
чем-то немного умным, большая часть вашей функции будет выполнена ;-) Обратите внимание: если вы хотите, чтобы italy
совпадал с Italy
(даже если один из них имеет заглавную букву), рекомендуется использовать .lower()
.
Иногда у вас могут возникнуть проблемы, если ни одна строка списка не совпадает или совпадает несколько строк. Если такая ситуация может случиться, подумайте об этом. Например, вы можете сохранить список всех совпадающих подстрок во втором столбце вместо строки или указать строку по умолчанию, если совпадения нет, и первое совпадение в случае нескольких совпадений.