タプルのこのリストを最初に整数の値で並べ替え、各タプルの文字列の長さでソートしますが、それを行う方法は分かりません。Pythonの2つの基準に従ってタプルのリストを並べ替えます
[(10 'ATAGCTAT')、(4 'TTAGCTA')、(6 'AATTAATCGAT')、(6 'GCTATAGC')]
タプルのこのリストを最初に整数の値で並べ替え、各タプルの文字列の長さでソートしますが、それを行う方法は分かりません。Pythonの2つの基準に従ってタプルのリストを並べ替えます
[(10 'ATAGCTAT')、(4 'TTAGCTA')、(6 'AATTAATCGAT')、(6 'GCTATAGC')]
sorted(s, key=lambda v: (v[0], len(v[1]), v[1]))
これを試しますkey
パラメータをsorted()
とし、並べ替えの基礎となる情報を考慮した新しいタプルを作成します。
タプルの第3の値として実際の文字列を含めて、最初の値と文字列の長さだけを結びつけることに注意してください。あなたが好きなら、それを削除することができます。
lst = [(10, 'ATAGCTAT'), (4, 'TTAGCTA'), (6, 'AATTAATCGAT'), (6, 'GCTATAGC')]
lst_sorted = sorted(lst, key=lambda x: (x[0], len(x[1])))
print(lst_sorted)
# [(4, 'TTAGCTA'), (6, 'GCTATAGC'), (6, 'AATTAATCGAT'), (10, 'ATAGCTAT')]
の並べ替えを与えるあなた例えば
、欲しい:
>>> l = [(10, 'ATAGCTAT'), (4, 'TTAGCTA'), (6, 'AATTAATCGAT'), (6, 'GCTAT
>>> sorted(l, key=lambda x: (x[0], len(x[1])))
[(4, 'TTAGCTA'), (6, 'GCTATAGC'), (6, 'AATTAATCGAT'), (10, 'ATAGCTAT')]
が基準あなたを使用するカスタムソート・キーを使用します。整数値のタプル、文字列項目の長さと
In [1]: s = [(10, 'ATAGCTAT'), (4, 'TTAGCTA'), (6, 'AATTAATCGAT'), (6, 'GCTATAGC')]
In [2]: sorted(s, key=lambda v: (v[0], len(v[1]), v[1]))
Out[2]: [(4, 'TTAGCTA'), (6, 'GCTATAGC'), (6, 'AATTAATCGAT'), (10, 'ATAGCTAT')]
sorted()機能を使用して、あなたのソート基準。
次のチュートリアルでは、sorted()のさまざまな例を紹介します。
https://docs.python.org/3.5/howto/sorting.html#sortinghowto
ソリューション:
>>> mylist = [(10, 'ATAGCTAT'), (4, 'TTAGCTA'), (6, 'AATTAATCGAT'), (6, 'GCTATAGC')]
>>> sorted(mylist, key=lambda val: (val[0], len(val[1])))
[(4, 'TTAGCTA'), (6, 'GCTATAGC'), (6, 'AATTAATCGAT'), (10, 'ATAGCTAT')]