Python:2つの属性に従ってリストを並べ替えます

Remi.b

私は次の種類のリストを持っています:

class Ind(object):
    def __init__(self,ID,mate):
        self.ID=ID
        self.mate=mate

population=[Ind(8,None), Ind(1,2), Ind(20,3), Ind(2,1), Ind(12,None), Ind(3,20), Ind(10,11), Ind(11,10)]

このリストpopulationは、すべてがID。を持つ個人の集団と考えることができますそれらのいくつかはmate(同じ集団または同じリストに存在する個人)を持っています。mate値は、実際にID相手の!したがって、Ind属性IDが12にmate等しく34に等しいインスタンスがある場合、リストには必然的にID34にmate等しく12に等しい個人mateNone存在しmateます。属性に持っていない個人が必要です。それは意味がありますか?

このリストを並べ替えて、最初の個人が最後の個人と一致し、2番目の個人が最後から2番目の個人と一致するようにします...属性mateが等しい個人Noneはリストの中央に立つ必要があります

私が望むものに合う多くの可能な出力があります。上記のリストのこれらの出力の一例を次に示します。

population=[Ind(1,2), Ind(20,3), Ind(10,11), Ind(8,None), Ind(12,None), Ind(11,10), Ind(3,20), Ind(2,1)]
気まぐれ

あなたはこのようなことを試すことができます:

def custom_sort(population):
    pop_dict = { ind.ID: ind for ind in population }

    start = []
    nones = []
    end = []
    for ind in population:
        if ind.mate is None:
            nones.append(ind)
        elif pop_dict[ind.mate] not in start:
            start.insert(0, ind)
            end.append(pop_dict[ind.mate])
    return start + nones + end

これは、「仲間であること」が1対1の関係であるという仮定の下にあります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つの属性に従ってArrayListを並べ替える

分類Dev

Java-属性に従って配列リスト内のものを並べ替えます

分類Dev

PythonとOpenCV:2つの基準に従って輪郭のリストを並べ替える

分類Dev

リスト内のすべてのi番目の要素に従って辞書を並べ替えます

分類Dev

Python要素の内容に従ってリストの順序を並べ替える

分類Dev

Bashの文字列のリストを、特定の部分文字列に従って数値で並べ替えます

分類Dev

別のリストに従ってリストを並べ替える

分類Dev

Pythonの別のサブリストの対応する重みに従ってサブリストを並べ替えます

分類Dev

階層に従ってリストを並べ替える

分類Dev

Pythonで配列値に従ってリストを並べ替える方法は?

分類Dev

特定の列に従ってPythonでリストのリストを並べ替える

分類Dev

別のリストに従ってリストを並べ替える方法は?Python

分類Dev

PHP:値のリストに従って多次元配列を並べ替える

分類Dev

特定の基準に従ってリストを並べ替える方法

分類Dev

新しい位置のリストに従って列を並べ替える方法

分類Dev

PHPの値に従って配列を並べ替えます

分類Dev

特別な条件で最初の列に従って2つのファイルを並べ替えます

分類Dev

Python。2つのキーと辞書に基づいて2Dリストを並べ替えます

分類Dev

2つのリストの並べ替えの結果の並べ替えを使用して3番目のリストを並べ替えますか?

分類Dev

Pythonを使用して、スイートと値に従ってカードを並べ替えます

分類Dev

Pythonで値の最初の文字に従ってリスト値を並べ替える方法

分類Dev

r-2番目のベクトルを最初のベクトルに従って並べ替えます

分類Dev

Pandas dfは、整数インデックスリストに従って行と列を並べ替えます

分類Dev

Djangoモデルは、エントリの日付に従って結果を並べ替えます

分類Dev

行の内容に従ってすべての行を並べ替えます

分類Dev

パンダの列の1つに一致する、リストに従ってデータフレームを並べ替える

分類Dev

00:00形式で時間に従ってリストを並べ替え/並べ替える方法は?

分類Dev

作成日に基づいて、2つのモデルを1つのリストに並べ替えます

分類Dev

リストのインデックス値を別のリスト値に従って並べ替える

Related 関連記事

  1. 1

    2つの属性に従ってArrayListを並べ替える

  2. 2

    Java-属性に従って配列リスト内のものを並べ替えます

  3. 3

    PythonとOpenCV:2つの基準に従って輪郭のリストを並べ替える

  4. 4

    リスト内のすべてのi番目の要素に従って辞書を並べ替えます

  5. 5

    Python要素の内容に従ってリストの順序を並べ替える

  6. 6

    Bashの文字列のリストを、特定の部分文字列に従って数値で並べ替えます

  7. 7

    別のリストに従ってリストを並べ替える

  8. 8

    Pythonの別のサブリストの対応する重みに従ってサブリストを並べ替えます

  9. 9

    階層に従ってリストを並べ替える

  10. 10

    Pythonで配列値に従ってリストを並べ替える方法は?

  11. 11

    特定の列に従ってPythonでリストのリストを並べ替える

  12. 12

    別のリストに従ってリストを並べ替える方法は?Python

  13. 13

    PHP:値のリストに従って多次元配列を並べ替える

  14. 14

    特定の基準に従ってリストを並べ替える方法

  15. 15

    新しい位置のリストに従って列を並べ替える方法

  16. 16

    PHPの値に従って配列を並べ替えます

  17. 17

    特別な条件で最初の列に従って2つのファイルを並べ替えます

  18. 18

    Python。2つのキーと辞書に基づいて2Dリストを並べ替えます

  19. 19

    2つのリストの並べ替えの結果の並べ替えを使用して3番目のリストを並べ替えますか?

  20. 20

    Pythonを使用して、スイートと値に従ってカードを並べ替えます

  21. 21

    Pythonで値の最初の文字に従ってリスト値を並べ替える方法

  22. 22

    r-2番目のベクトルを最初のベクトルに従って並べ替えます

  23. 23

    Pandas dfは、整数インデックスリストに従って行と列を並べ替えます

  24. 24

    Djangoモデルは、エントリの日付に従って結果を並べ替えます

  25. 25

    行の内容に従ってすべての行を並べ替えます

  26. 26

    パンダの列の1つに一致する、リストに従ってデータフレームを並べ替える

  27. 27

    00:00形式で時間に従ってリストを並べ替え/並べ替える方法は?

  28. 28

    作成日に基づいて、2つのモデルを1つのリストに並べ替えます

  29. 29

    リストのインデックス値を別のリスト値に従って並べ替える

ホットタグ

アーカイブ