擅长:python、mysql、java
<p>这个解决方案很复杂,因为=语言环境.strxfrm工作正常
使用单个列表和字典,但不使用列表列表或
元组列表。在</p>
<p>Py2->Py3的更改:使用语言环境.setlocale(locale.LC\u全部, '')
和key='语言环境.strxfrm'(而不是'cmp=区域设置.strcoll'). 在</p>
<pre><code>list_of_tuples = [('Wa', 1), ('Vb',2), ('Wc',3), ('Vd',4), ('Öa',5), ('äa',6), ('Åa',7)]
def locTupSorter(uLot):
"Locale-wise list of tuples sorter - works with most European languages"
import locale
locale.setlocale(locale.LC_ALL, '') # get current locale
dicTups = dict(uLot) # list of tups to unsorted dictionary
ssList = sorted(dicTups, key=locale.strxfrm)
sLot = []
for i in range(len(ssList)): # builds a sorted list of tups
tfLot = ()
elem = ssList[i] # creates tuples for list
tfLot = (elem, dicTups[elem])
sLot.append(tfLot) # creates sorted list of tuples
return(sLot)
print("list_of_tuples=\n", list_of_tuples)
sortedLot = locTupSorter(list_of_tuples)
print("sorted list of tuples=\n",sortedLot)
</code></pre>