要素の完全な配列

トピック

1. リスト ['a', 'b', 'c'] を入力し、リスト要素の完全な配列を出力します: [['a', 'b', 'c'], ['a', 'c' 、' b']、['b'、'a'、'c']、['b'、'c'、'a']、['c'、'a'、'b']、[' c'、'b'、'a']]。

2. リスト内に重複する要素がある場合、同じ要素との組み合わせは結果から削除されます。
例: 入力 ['a', 'b', 'b']、出力 [['a', 'b', 'b'], ['b', 'a', 'b'], [' b '、'b'、'a']]

1. コード

def all_pailie(S):
    if len(S) <= 1:
        return [S]
    ls = []
    for i in range(len(S)):
        for j in all_pailie(S[0:i] + S[i+1:]):
            ls.append([S[i]] + j)
    return ls

print(all_pailie(['a','b','c']))

2. コード

def all_pailie(S):
    if len(S) <= 1:
        return [S]
    ls = []
    for i in range(len(S)):
        for j in all_pailie(S[0:i] + S[i+1:]):
            if ([S[i]] + j) in ls:
                continue
            ls.append([S[i]] + j)
    return ls

print(all_pailie(['a','b','b']))

要約する

コード 1 は、さまざまな要素の完全な置換結果を示し、コード 2 は、繰り返される要素を考慮して同じ結果を削除します。

おすすめ

転載: blog.csdn.net/a_13572035650/article/details/128320984