Как vlc.py воспроизводит видео поток?

В Python 2 работает следующее:

sorted_list = sorted(unsorted_list, key=lambda s: s.lower())

Он работает как для обычных, так и для unicode-строк, поскольку оба они имеют метод lower.

В Python 2 это работает для сочетания нормальных и юникодовых строк, поскольку значения двух типов можно сравнивать друг с другом. Python 3 работает не так: вы не можете сравнивать строку байтов и строку юникода, поэтому в Python 3 вы должны делать разумную вещь и только сортировать списки одного типа строк.

>>> lst = ['Aden', u'abe1']
>>> sorted(lst)
['Aden', u'abe1']
>>> sorted(lst, key=lambda s: s.lower())
[u'abe1', 'Aden']

Начиная с python 3.3 существует также метод str.casefold , специально предназначенный для сопоставления без использования и может использоваться вместо str.lower:

sorted_list = sorted(unsorted_list, key=lambda s: s.casefold())

14
задан why 21 February 2012 в 05:32
поделиться