У меня есть список доменов, и я хочу их отсортировать на основе tld. Каков самый быстрый способ сделать это?сортировка строк на основе данных в середине строки (в python)
ответ
Используйте параметр key
в качестве значения .sort()
, чтобы предоставить функцию, которая может извлекать соответствующие данные для сортировки.
import urlparse
def get_tld_from_domain(domain)
return urlparse.urlparse(domain).netloc.split('.')[-1]
list_of_domains.sort(key=get_tld_from_domain)
# or if you want to make a new list, instead of sorting the old one
sorted_list_of_domains = sorted(list_of_domains, key=get_tld_from_domain)
Если вы предпочитаете, вы не могли бы определить функцию по отдельности, но вместо того, чтобы просто использовать lambda
функцию, но определив ее отдельно зачастую сделать код более удобным для чтения, который всегда плюс.
Как говорит Гангадхар, трудно понять, какая часть netloc является tld, но в вашем случае я немного изменил бы код Amber. Это будет сортировать по всему домену, сначала на первом уровне, затем на втором - на последнем уровне и т. Д.
Это может быть достаточно для того, что вам нужно без необходимости ссылаться на внешние списки
import urlparse
def get_reversed_domain(domain)
return urlparse.urlparse(domain).netloc.split('.')[::-1]
sorted_list_of_domains = sorted(list_of_domains, key=get_reversed_domain)
Просто перечитайте OP, если список уже только домены, вы можете просто использовать
sorted_list_of_domains = sorted(list_of_domains, key=lambda x:x.split('.')[::-1])
- 1. Сортировка списка Python на основе длины строки
- 2. Сортировка векторов строк на основе строки строки (даты) в R
- 3. Сортировка строк на основе сходства
- 4. Сортировка списка на основе строки - Python
- 5. Сортировка строк в сущности на основе атрибута в основных данных
- 6. Сортировка строк на основе числа в строке строки
- 7. Python - Сортировка строк в файле на основе первого слова?
- 8. сортировка строк в Java на основе подстрок
- 9. Сортировка строк в массиве на основе длины
- 10. Выбор и сортировка строк в кадре данных на основе вектора
- 11. Сортировка списка списков на основе данной строки в Python
- 12. Сортировка строк в таблице данных
- 13. Сортировка строк данных в разных таблицах на основе данных строки Excel VBA
- 14. Сортировка списка списков на основе списка строк
- 15. Сортировка в GWT на основе строки
- 16. Сортировка массивов на основе строки?
- 17. Сортировка на основе строки java
- 18. Сортировка на основе двух переменных в python
- 19. Сортировка строк в группы на основе общих значений
- 20. Objective-C - сортировка массива строк на основе строки ломтиком
- 21. Сортировка списка строк на основе списка целых чисел (Python)
- 22. Python: сортировка списка строк по шаблону строки?
- 23. Изменение строки в файле на основе предыдущих строк - Python
- 24. Сортировка строкового массива на основе строки соответствия
- 25. Сортировка строк на основе значений выражений в SSRS 2008 R2
- 26. Поиск в середине строки
- 27. Сортировка строк данных на основе символов и его длина
- 28. Сортировка словаря Python на основе значений
- 29. Сортировка строк SSRS на основе значений столбцов
- 30. Сортировка Divs в JQuery на основе атрибута «сортировка данных»?
' sorted() 'возвращает список, поэтому' list() 'здесь избыточен. – jfs
Совершенно верно. В последнее время я слишком много работал с выражениями генератора. :П – Amber