Semua permutasi nama python

Tulis sebuah program yang mencantumkan semua cara orang dapat berbaris untuk sebuah foto (semua permutasi dari daftar string). Program akan membaca daftar satu nama kata, kemudian menggunakan metode rekursif untuk membuat dan menampilkan semua urutan yang mungkin dari nama tersebut, satu urutan per baris

Modul itertools di Python, menyediakan fungsi permutasi(). Ini menerima iterable sebagai argumen, dan mengembalikan permutasi r-panjang berturut-turut elemen dalam iterable

Untuk menghasilkan semua perumtasi dari sebuah daftar, teruskan daftar ke fungsi kustom GetPermutations() kami sebagai argumen, dan dapatkan daftar daftar yang berisi semua permutasi. Mari kita lihat contoh lengkapnya,

Dalam tutorial ini, Anda akan belajar cara menggunakan Python untuk menemukan semua permutasi string, termasuk menggunakan itertools, rekursi, dan Python untuk loop. Anda juga akan belajar bagaimana menemukan semua kombinasi string ketika penggantian huruf individual diperbolehkan

Tapi apa itu permutasi? . Jadi, misalnya string abc bisa juga ditulis sebagai ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']

Jawaban Cepat. Pengguna Itertools untuk Menemukan Semua Permutasi dari sebuah String

Semua permutasi nama python
Jawaban Cepat – Temukan Semua Permutasi String dengan Python

Daftar isi

Apa itu Permutasi String?

Permutasi string mengacu pada semua urutan berbeda yang mungkin diambil oleh string. Mari, misalnya, lihat string yang terdiri dari tiga huruf. 'abc'. Ketika kami menemukan semua permutasi dari string ini, kami mengembalikan daftar berikut. ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']. Kita dapat melihat di sini, bahwa kita memiliki daftar yang berisi enam item

Kita benar-benar dapat menghitung jumlah permutasi yang akan dimiliki string untuk kekuatan panjang apa pun, dengan menghitung faktorial panjangnya. Jadi, dalam contoh kita tentang 'abc', kita akan menghitung nilai 3!, yang sebenarnya bernilai

# Getting all permutations of a string using recursion in Python
a_string = 'abc'

def get_permutation(some_string, idx=0):

    if idx == len(some_string) - 1:   	 
        print("".join(some_string))

    for j in range(idx, len(some_string)):
        words_list = [c for c in some_string]   
        words_list[idx], words_list[j] = words_list[j], words_list[idx]
   	 
        get_permutation(words_list, idx + 1)

permutations = get_permutation(a_string)
print(permutations)

# Returns: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
0

Sekarang setelah Anda memiliki pemahaman tentang apa artinya menghasilkan semua kombinasi string dengan Python, mari kita lihat bagaimana kita dapat dengan mudah menghasilkan permutasi string yang berbeda

Gunakan Itertools dengan Python untuk Menemukan Semua Permutasi dari sebuah String

Itertools adalah alat Python bawaan yang fantastis yang memungkinkan Anda membuat pekerjaan mudah dari masalah yang melibatkan iterables. Percaya atau tidak, string dalam Python adalah objek yang dapat diubah. Karena itu, kita dapat dengan mudah mengulang string kita menggunakan pustaka itertools

Bahkan, perpustakaan itertools memiliki fungsi yang disebut

# Getting all permutations of a string using recursion in Python
a_string = 'abc'

def get_permutation(some_string, idx=0):

    if idx == len(some_string) - 1:   	 
        print("".join(some_string))

    for j in range(idx, len(some_string)):
        words_list = [c for c in some_string]   
        words_list[idx], words_list[j] = words_list[j], words_list[idx]
   	 
        get_permutation(words_list, idx + 1)

permutations = get_permutation(a_string)
print(permutations)

# Returns: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
2. Kami mengirimkan iterable, dalam hal ini, string, fungsi mengembalikan daftar semua kemungkinan kombinasi

Mari kita lihat contoh string kita dan bagaimana kita bisa menggunakan pustaka itertools untuk menghitung permutasinya

import itertools

a_string = 'abc'
string_permutations = itertools.permutations(a_string)
string_permutations = list(string_permutations)
string_permutations = [''.join(permutation) for permutation in string_permutations]

print(string_permutations)

# Returns: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']

Mari kita lihat apa yang telah kita lakukan di sini

  1. Kami mengimpor pustaka itertools
  2. Kami memuat string kami dan menugaskannya ke variabel
    # Getting all permutations of a string using recursion in Python
    a_string = 'abc'
    
    def get_permutation(some_string, idx=0):
    
        if idx == len(some_string) - 1:   	 
            print("".join(some_string))
    
        for j in range(idx, len(some_string)):
            words_list = [c for c in some_string]   
            words_list[idx], words_list[j] = words_list[j], words_list[idx]
       	 
            get_permutation(words_list, idx + 1)
    
    permutations = get_permutation(a_string)
    print(permutations)
    
    # Returns: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
    3
  3. Kami kemudian menggunakan fungsi
    # Getting all permutations of a string using recursion in Python
    a_string = 'abc'
    
    def get_permutation(some_string, idx=0):
    
        if idx == len(some_string) - 1:   	 
            print("".join(some_string))
    
        for j in range(idx, len(some_string)):
            words_list = [c for c in some_string]   
            words_list[idx], words_list[j] = words_list[j], words_list[idx]
       	 
            get_permutation(words_list, idx + 1)
    
    permutations = get_permutation(a_string)
    print(permutations)
    
    # Returns: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
    _4 untuk membuat objek itertools
  4. Kami mengubah objek ini menjadi daftar, yang mengembalikan daftar tupel, yang berisi permutasi kami
  5. Akhirnya, kami menggunakan pemahaman daftar untuk menggabungkan permutasi kami menjadi string individual

Di bagian selanjutnya, Anda akan mempelajari cara menggunakan rekursi untuk menemukan kombinasi string di Python

Ingin mempelajari lebih lanjut tentang pemahaman daftar Python? . Lebih dari pembelajar visual, lihat tutorial YouTube saya di sini

Gunakan Rekursi di Python untuk Menemukan Semua Permutasi dari sebuah String

Konsep yang akan kita gunakan dalam rekursi untuk membuat permutasi dikenal sebagai backtracking. Idenya adalah kita mundur untuk setiap kemungkinan kombinasi yang bisa ada

Mari kita lihat bagaimana metode rekursif ini bekerja untuk membantu menemukan semua kombinasi string di Python

# Getting all permutations of a string using recursion in Python
a_string = 'abc'

def get_permutation(some_string, idx=0):

    if idx == len(some_string) - 1:   	 
        print("".join(some_string))

    for j in range(idx, len(some_string)):
        words_list = [c for c in some_string]   
        words_list[idx], words_list[j] = words_list[j], words_list[idx]
   	 
        get_permutation(words_list, idx + 1)

permutations = get_permutation(a_string)
print(permutations)

# Returns: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']

Kita dapat melihat bahwa ini mengembalikan sama seperti di atas. Namun, ini sedikit kurang intuitif untuk diikuti oleh pengguna Python pemula, jadi mungkin menggunakan metode itertools mungkin lebih disukai untuk keterbacaan. Metode ini, bagaimanapun, sangat membantu ketika Anda tidak dapat menggunakan itertools karena alasan tertentu

Ingin mempelajari cara menggunakan fungsi Python

# Getting all permutations of a string using recursion in Python
a_string = 'abc'

def get_permutation(some_string, idx=0):

    if idx == len(some_string) - 1:   	 
        print("".join(some_string))

    for j in range(idx, len(some_string)):
        words_list = [c for c in some_string]   
        words_list[idx], words_list[j] = words_list[j], words_list[idx]
   	 
        get_permutation(words_list, idx + 1)

permutations = get_permutation(a_string)
print(permutations)

# Returns: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
5 untuk mengulangi dua daftar?

Permutasi dengan Pengulangan String dengan Python

Pada contoh di atas, kami menggunakan Python untuk menemukan semua kombinasi string tanpa pengulangan. Di bagian ini, Anda akan belajar cara menggunakan Python untuk mendapatkan semua permutasi string dengan pengulangan

Ini dapat dengan mudah dilakukan dengan menggunakan Python for loop

Mari kita lihat sebuah contoh, menggunakan string yang sama yang telah kita gunakan sebelumnya, 'abc'

# Use Python to get all combinations of a string with repetition
a_string = 'abc'

final_list = [[]]
length = len(a_string)
groups = [list(a_string)] * length
for i in groups:
    final_list = [x+[y] for x in final_list for y in i]

permutations = [''.join(item) for item in final_list]
print(permutations)

# Returns ['aaa', 'aab', 'aac', 'aba', 'abb', 'abc', 'aca', 'acb', 'acc', 'baa', 'bab', 'bac', 'bba', 'bbb', 'bbc', 'bca', 'bcb', 'bcc', 'caa', 'cab', 'cac', 'cba', 'cbb', 'cbc', 'cca', 'ccb', 'ccc']
_

Pada kode di atas, kami menggunakan for loop dan pemahaman daftar untuk mengembalikan semua kombinasi string Python dengan pengulangan

Kode di atas bisa menjadi sangat intensif sumber daya. Kita juga dapat melihat di sini bahwa kita memiliki kombinasi berkali-kali lebih banyak ketika kita menggunakan pengulangan daripada jika tidak

Ingin mempelajari lebih lanjut tentang for-loop Python? . Ingin menonton video saja?

Kesimpulan

Dalam posting ini, Anda belajar bagaimana menggunakan Python untuk menghasilkan daftar semua permutasi string. Anda belajar bagaimana melakukan ini menggunakan perpustakaan itertools populer serta menggunakan rekursi. Anda kemudian belajar bagaimana menggunakan loop for Python untuk menghasilkan daftar semua kombinasi string ketika pengulangan diperbolehkan

Bagaimana Anda mendapatkan semua permutasi daftar dengan Python?

Jumlah permutasi pada himpunan n elemen diberikan oleh n. . Misal ada 2. = 2*1 = 2 permutasi dari {1, 2}, yaitu {1, 2} dan {2, 1}, dan 3. = 3*2*1 = 6 permutasi dari {1, 2, 3}, yaitu {1, 2, 3}, {1, 3, 2}, {2, 1, 3}, {2, 3, 1} .

Bagaimana cara mendapatkan semua kemungkinan permutasi dari sebuah string dengan Python?

Untuk menemukan semua kemungkinan permutasi dari string tertentu, Anda dapat menggunakan modul itertools yang memiliki metode berguna yang disebut permutasi(iterable[, r]). This method return successive r length permutations of elements in the iterable as tuples.

Bagaimana Anda membuat daftar semua kemungkinan permutasi?

Untuk menghitung jumlah permutasi, ambil jumlah kemungkinan untuk setiap kejadian lalu kalikan angka tersebut dengan angka itu sendiri X kali, di mana X sama dengan jumlah kejadian dalam urutan< . Misalnya, dengan PIN empat digit, setiap digit dapat berkisar dari 0 hingga 9, memberi kita 10 kemungkinan untuk setiap digit. . For example, with four-digit PINs, each digit can range from 0 to 9, giving us 10 possibilities for each digit.

Bagaimana Anda mencetak semua permutasi angka dengan Python?

Temukan semua permutasi string dengan Python .
import itertools
jika __nama__ == '__main__'
s = 'ABC'
angka = daftar
permutasi = daftar(itertools. permutasi(angka))
# Keluaran. ['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA']
mencetak([''. join(permutasi) untuk permutasi dalam permutasi])