Hướng dẫn how do you find the combination of a string in python? - làm thế nào để bạn tìm thấy sự kết hợp của một chuỗi trong python?

Xin chào vì vậy tôi đang làm việc với Python và tôi đang cố gắng viết một phương pháp trong đó được đưa ra một chuỗi, nó sẽ tìm thấy mọi sự kết hợp của chuỗi đó và nối nó vào một danh sách. Tôi sẽ đưa ra chuỗi và hiển thị kết quả mà tôi muốn.

Chuỗi: x = 'god'

outcome:

lst = ['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']

Một chữ cái chỉ có thể được sử dụng bởi số lần nó xuất hiện trên chuỗi được đưa ra, vì vậy nếu chuỗi của chúng tôi là 'god', 'gg' hoặc 'goo', v.v. Nếu điều này có thể được thực hiện bằng cách sử dụng đệ quy sẽ rất tuyệt!

Hướng dẫn how do you find the combination of a string in python? - làm thế nào để bạn tìm thấy sự kết hợp của một chuỗi trong python?

Styvane

57K17 Huy hiệu vàng147 Huy hiệu bạc151 Huy hiệu Đồng17 gold badges147 silver badges151 bronze badges

Đã hỏi ngày 5 tháng 3 năm 2015 lúc 5:31Mar 5, 2015 at 5:31

0

Sử dụng hoán vị:

from itertools import permutations

x = 'god'


perms = []

for i in range(1, len(x)+1):
    for c in permutations(x, i):
        perms.append("".join(c))

print(perms) 
# ['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']

Đã trả lời ngày 5 tháng 3 năm 2015 lúc 5:37Mar 5, 2015 at 5:37

MarcinmarcinMarcin

185K12 Huy hiệu vàng158 Huy hiệu bạc222 Huy hiệu đồng12 gold badges158 silver badges222 bronze badges

Sử dụng

from itertools import permutations

x = 'god'


perms = []

for i in range(1, len(x)+1):
    for c in permutations(x, i):
        perms.append("".join(c))

print(perms) 
# ['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']
0 và liệt kê toàn bộ
from itertools import permutations

x = 'god'


perms = []

for i in range(1, len(x)+1):
    for c in permutations(x, i):
        perms.append("".join(c))

print(perms) 
# ['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']
0
and list comprehensions

from itertools import permutations
[''.join(j) for i in range(1,len(x) + 1) for j in  permutations(x, i)]

Đầu ra

['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']

Đã trả lời ngày 5 tháng 3 năm 2015 lúc 5:36Mar 5, 2015 at 5:36

styvanestyvanestyvane

57K17 Huy hiệu vàng147 Huy hiệu bạc151 Huy hiệu Đồng17 gold badges147 silver badges151 bronze badges

1

Đã hỏi ngày 5 tháng 3 năm 2015 lúc 5:31

>>> import itertools
>>> letters = 'god'
>>> combinations = []
>>> for i in range(len(letters)):
...     combinations.extend(
...         [''.join(x) for x in itertools.permutations(letters, i + 1)])
>>> print(combinations)
['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']

Sử dụng hoán vị:Mar 5, 2015 at 5:33

Hướng dẫn how do you find the combination of a string in python? - làm thế nào để bạn tìm thấy sự kết hợp của một chuỗi trong python?

Đã trả lời ngày 5 tháng 3 năm 2015 lúc 5:37

from itertools import permutations

x = 'god'


perms = []

for i in range(1, len(x)+1):
    for c in permutations(x, i):
        perms.append("".join(c))

print(perms) 
# ['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']
3

Marcinmarcin

Đã trả lời ngày 5 tháng 3 năm 2015 lúc 5:37Mar 5, 2015 at 5:37

9y7h0n9y7h0n9y7h0n

Marcinmarcin1 silver badge8 bronze badges

import itertools

def _itersubs(x):
    for i in range(1, len(x)+1):
        yield from itertools.permutations(x, i)
        # before 3.4, replace with:
        # for y in itertools.permutations(x, i): yield y

def thefuncyouwant(x):
    return list(_itersubs(x))

185K12 Huy hiệu vàng158 Huy hiệu bạc222 Huy hiệu đồngwant a list of

from itertools import permutations

x = 'god'


perms = []

for i in range(1, len(x)+1):
    for c in permutations(x, i):
        perms.append("".join(c))

print(perms) 
# ['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']
4 items -- it will take a lot of memory for any
from itertools import permutations

x = 'god'


perms = []

for i in range(1, len(x)+1):
    for c in permutations(x, i):
        perms.append("".join(c))

print(perms) 
# ['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']
5 not very short -- but, it's what you asked for, so here it is. The iterator yielding one item at a time is obviously more natural and probably preferable, but just wrapping it in a
from itertools import permutations

x = 'god'


perms = []

for i in range(1, len(x)+1):
    for c in permutations(x, i):
        perms.append("".join(c))

print(perms) 
# ['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']
6 call will eat up just as much memory as you crave!-)

Sử dụng

from itertools import permutations

x = 'god'


perms = []

for i in range(1, len(x)+1):
    for c in permutations(x, i):
        perms.append("".join(c))

print(perms) 
# ['g', 'o', 'd', 'go', 'gd', 'og', 'od', 'dg', 'do', 'god', 'gdo', 'ogd', 'odg', 'dgo', 'dog']
0 và liệt kê toàn bộMar 5, 2015 at 5:41

from itertools import permutations
[''.join(j) for i in range(1,len(x) + 1) for j in  permutations(x, i)]
Alex Martelli

Đầu ra163 gold badges1203 silver badges1380 bronze badges

Làm thế nào để bạn có được sự kết hợp của một chuỗi trong Python?

Tìm tất cả các hoán vị của một chuỗi trong Python..
nhập itertools ..
Nếu __name__ == '__main__':.
s = 'abc'.
Nums = Danh sách (S).
hoán vị = danh sách (itertools. hoán vị (nums)).
# Đầu ra: ['ABC', 'ACB', 'BAC', 'BCA', 'Cab', 'CBA'].
in ([''. Tham gia (hoán vị) cho hoán vị trong hoán vị]).

Làm thế nào để bạn tìm thấy sự kết hợp của một chuỗi?

charat (0); Chuỗi st = s. con (1); Đặt qq = find (st); for (chuỗi str: qq) {for (int i = 0; i

Làm thế nào để bạn tìm thấy tất cả các kết hợp có thể có trong Python?

Để tìm tất cả các kết hợp của một danh sách Python, còn được gọi là một quyền lực, hãy làm theo các bước sau:..
Nhập mô-đun ITERtools tích hợp ..
Chỉ định danh sách các mục ..
Khởi tạo một danh sách trống để lưu trữ các kết hợp ..
Tạo một vòng lặp các giá trị vòng từ 0 đến chiều dài của danh sách + 1 ..

Làm cách nào để in tất cả các kết hợp của một chuỗi?

Sử dụng phương pháp quay lại, tất cả các hoán vị của chuỗi đã cho có thể được in ...
Hoán đổi s [i] và s [idx] ..
Xây dựng tất cả các hoán vị có thể khác, từ backtrack (IDX + 1) ..
Backtrack một lần nữa, tức là hoán đổi (s [i], s [idx]) ..