Hướng dẫn how do you make an anagram program in python? - làm thế nào để bạn tạo một chương trình đảo chữ trong python?

Hai chuỗi được cho là đảo chữ nếu chúng ta có thể tạo thành một chuỗi bằng cách sắp xếp các ký tự của chuỗi khác. Ví dụ, chủng tộc và chăm sóc. Ở đây, chúng ta có thể hình thành chủng tộc bằng cách sắp xếp các nhân vật chăm sóc.


Chương trình Python để kiểm tra xem hai chuỗi có phải là đối thủ sử dụng Sắp xếp ()

str1 = "Race"
str2 = "Care"

# convert both the strings into lowercase
str1 = str1.lower()
str2 = str2.lower()

# check if length is same
if(len(str1) == len(str2)):

    # sort the strings
    sorted_str1 = sorted(str1)
    sorted_str2 = sorted(str2)

    # if sorted char arrays are same
    if(sorted_str1 == sorted_str2):
        print(str1 + " and " + str2 + " are anagram.")
    else:
        print(str1 + " and " + str2 + " are not anagram.")

else:
    print(str1 + " and " + str2 + " are not anagram.")

Đầu ra

race and care are anagram.

Trước tiên chúng tôi chuyển đổi các chuỗi thành chữ thường. Đó là bởi vì Python nhạy cảm với trường hợp (nghĩa là

'elle' and 'leel'
9 và
'hello' and 'olleh'
'hello' and 'lleoh'
0 là hai ký tự khác nhau trong Python).

Here,

  • 'hello' and 'olleh'
    'hello' and 'lleoh'
    1 - Chuyển đổi các ký tự thành chữ thường
  • 'hello' and 'olleh'
    'hello' and 'lleoh'
    2 - sắp xếp cả hai chuỗi

Nếu các mảng được sắp xếp bằng nhau, thì các chuỗi là đảo chữ.

Bạn có biết làm thế nào để kiểm tra xem hai chuỗi có phải là đối thủ của nhau trong Python không? Nó là một vấn đề phổ biến và có nhiều cách để giải quyết nó.

Hai chuỗi là phương pháp của nhau nếu cả hai đều chứa cùng một ký tự và mỗi ký tự có mặt trong mỗi chuỗi cùng một số lần. .Count () hàm. Two ways to check if two strings are anagrams in Python is by using the sorted() function or the collections.Counter() function.

Về mặt kỹ thuật, các phương pháp đối tượng nên có một ý nghĩa nhưng trong kịch bản này, chúng ta sẽ coi là cách đối tượng cũng là hoán vị của các nhân vật mà không có ý nghĩa.

Hãy để những người bắt đầu!

  • Một đảo chữ cái trong Python là gì?
  • Ví dụ về chương trình để kiểm tra xem hai chuỗi có phải là đối thủ của nhau không
  • Thực hiện kiểm tra anagram trong hàm python
  • Cách tìm cách tìm cách cho một chuỗi trong danh sách các chuỗi
  • Cách tạo ANAGrams cho một từ bằng cách sử dụng Python
  • Cách tìm cách tìm kiếm trong danh sách Python bằng cách sử dụng từ điển
  • Viết một chức năng tạo ra một từ điển của ANAGRAM
  • Sử dụng bộ sưu tập.Count () để tìm kiếm A -ANAGRAM
  • Sự kết luận

Một đảo chữ cái trong Python là gì?

Ví dụ về chương trình để kiểm tra xem hai chuỗi có phải là đối thủ của nhau không

Thực hiện kiểm tra anagram trong hàm python

'elle' and 'leel'

Cách tìm cách tìm cách cho một chuỗi trong danh sách các chuỗi

'hello' and 'olleh'
'hello' and 'lleoh'

Cách tạo ANAGrams cho một từ bằng cách sử dụng Python

'elle' and 'leele'

Cách tìm cách tìm kiếm trong danh sách Python bằng cách sử dụng từ điển

Viết một chức năng tạo ra một từ điển của ANAGRAMsorted built-in function.

Sử dụng bộ sưu tập.Count () để tìm kiếm A -ANAGRAM

>>> sorted('elle')
['e', 'e', 'l', 'l']
>>> sorted('leel')
['e', 'e', 'l', 'l'] 

Sự kết luận

Anagram không phải là một khái niệm cụ thể cho Python, nó là một khái niệm chung chung hơn. Nếu hai từ chứa cùng một chữ cái và mỗi chữ cái có cùng một số lần chúng là đối thủ của nhau.

Ví dụ, các chuỗi sau là đảo chữ của nhau:

Các ví dụ khác về đảo chữ là:

Và các chuỗi sau đây không phải là đảo chữ

Vì vậy, làm thế nào chúng ta có thể xác minh đảo chữ trong Python?

>>> sorted('leel') == sorted('leel')
True
>>> sorted('leel') == sorted('leele')
False 

Ví dụ về chương trình để kiểm tra xem hai chuỗi có phải là đối thủ của nhau không

Thực hiện kiểm tra anagram trong hàm python

first_string = input("Provide the first string: ")
second_string = input("Provide the second string: ") 

if sorted(first_string) == sorted(second_string):
    print("The two strings are anagrams of each other.")
else:
    print("The two strings are not anagrams of each other.") 

Cách tìm cách tìm cách cho một chuỗi trong danh sách các chuỗi

Cách tạo ANAGrams cho một từ bằng cách sử dụng Python

$ python anagrams.py
Provide the first string: hello
Provide the second string: olelh
The two strings are anagrams of each other.
 
$ python anagrams.py
Provide the first string: hello
Provide the second string: ollleh
The two strings are not anagrams of each other. 

Cách tìm cách tìm kiếm trong danh sách Python bằng cách sử dụng từ điển

Viết một chức năng tạo ra một từ điển của ANAGRAM

Thực hiện kiểm tra anagram trong hàm python

Cách tìm cách tìm cách cho một chuỗi trong danh sách các chuỗi

Cách tạo ANAGrams cho một từ bằng cách sử dụng Python

def anagram_checker(first_value, second_value):
    if sorted(first_string) == sorted(second_string):
        print("The two strings are anagrams of each other.")
    else:
        print("The two strings are not anagrams of each other.") 

Cách tìm cách tìm kiếm trong danh sách Python bằng cách sử dụng từ điển

race and care are anagram.
0

Viết một chức năng tạo ra một từ điển của ANAGRAM

Sử dụng bộ sưu tập.Count () để tìm kiếm A -ANAGRAM

Cách tìm cách tìm cách cho một chuỗi trong danh sách các chuỗi

Cách tạo ANAGrams cho một từ bằng cách sử dụng Python

Cách tìm cách tìm kiếm trong danh sách Python bằng cách sử dụng từ điển

race and care are anagram.
1

Viết một chức năng tạo ra một từ điển của ANAGRAM

Sử dụng bộ sưu tập.Count () để tìm kiếm A -ANAGRAM

Sự kết luận

  • Anagram không phải là một khái niệm cụ thể cho Python, nó là một khái niệm chung chung hơn. Nếu hai từ chứa cùng một chữ cái và mỗi chữ cái có cùng một số lần chúng là đối thủ của nhau.
  • Ví dụ, các chuỗi sau là đảo chữ của nhau:
  • Các ví dụ khác về đảo chữ là:
race and care are anagram.
2

Và các chuỗi sau đây không phải là đảo chữ

Vì vậy, làm thế nào chúng ta có thể xác minh đảo chữ trong Python?

race and care are anagram.
3

Ba thử nghiệm được thực hiện chống lại chức năng của chúng tôi trả về kết quả chính xác.

Cách tạo ANAGrams cho một từ bằng cách sử dụng Python

Bây giờ chúng tôi sẽ giải quyết một vấn đề hơi khác nhau.

Đưa ra một chuỗi, chúng tôi muốn tạo tất cả các từ được làm từ các hoán vị có thể của các chữ cái trong từ.

Vì vậy, đối với từ ‘Cat, chúng tôi muốn đầu ra sau:

race and care are anagram.
4

Mô -đun Python ITERTOOLS cung cấp hàm Pernits () có thể giúp chúng tôi với điều này.

Hãy để xem các hàm hoán vị () trả về những gì chúng tôi chuyển chuỗi của chúng tôi cho nó.

race and care are anagram.
5

Chúng tôi lấy lại một đối tượng itertools.Permutations. Hãy để xem nếu chúng ta có thể chọn nó vào một danh sách

race and care are anagram.
6

Lần này chúng tôi lấy lại một danh sách các bộ dữ liệu. Các phần tử của mỗi tuple là các ký tự trong chuỗi gốc.

Tôi muốn xem một danh sách các chuỗi, làm thế nào chúng ta có thể tạo ra nó?

Chúng ta có thể sử dụng khả năng hiểu danh sách và phương thức tham gia chuỗi Python:

race and care are anagram.
7

Nó trông đẹp hơn!

Phương thức tham gia biến đổi mỗi tuple thành một chuỗi.

Cách tìm cách tìm kiếm trong danh sách Python bằng cách sử dụng từ điển

Bây giờ, hãy để Lừa tìm hiểu làm thế nào chúng ta có thể sử dụng từ điển Python để lưu trữ tất cả các đảo chữ bắt đầu từ một danh sách các chuỗi.

race and care are anagram.
8

Thuật toán để lưu trữ đảo chữ sẽ hoạt động như sau:

  • Đi qua từng chuỗi trong danh sách và trước tiên sắp xếp các ký tự của nó.
  • Kiểm tra xem bất kỳ cách đảo nào của chuỗi này đã là khóa từ điển.
  • Nếu không thêm từ này làm khóa từ điển khác, hãy thêm từ này vào giá trị (danh sách loại) được ánh xạ vào khóa từ điển hiện có.

Ví dụ: nếu chúng ta lấy chuỗi đầu tiên ‘Cat, chúng ta mong đợi một cái gì đó như thế này:

race and care are anagram.
9

Vì vậy, ‘Cat, gặp phải và nó được đặt làm khóa từ điển. Sau đó, khi ‘TAC, và‘ ATC, được xử lý, chúng được thêm vào danh sách được ánh xạ vào phím ‘Cat, vì chúng là đảo chữ của‘ Cat.

Có ý nghĩa?

Hãy để viết mã để thực hiện điều này

Đầu tiên, chúng ta cần một hàm lấy một từ và một danh sách các khóa từ điển và kiểm tra xem một từ ngữ của từ có trong các khóa từ điển.

Nếu có mặt, nó trả về khóa nếu không nó sẽ trả về không.

'elle' and 'leel'
0

Kiểm tra chức năng này đầu tiên…

Kịch bản trong đó một đối tượng cho từ này là một trong những khóa từ điển

'elle' and 'leel'
1

Kịch bản trong đó không có đối tượng đối với từ trong danh sách các khóa từ điển

'elle' and 'leel'
2

Hãy chắc chắn rằng bạn hiểu chức năng này trước khi tiếp tục xem xét rằng chúng tôi sẽ gọi chức năng này khi tạo từ điển của chúng tôi.

Viết một chức năng tạo ra một từ điển của ANAGRAM

Và bây giờ chúng ta sẽ viết hàm tạo từ điển của các cách gọi bắt đầu từ một danh sách các từ.

Chức năng làm như sau:

  • Đi qua từng từ trong danh sách các từ.
  • Chuyển đổi từ sang chữ thường.
  • Gọi hàm trước get_anagram_from_dictionary_keys ().
  • Nếu một khóa được trả về bởi hàm trước, từ này chỉ đơn giản là được thêm vào danh sách được ánh xạ vào khóa từ điển hiện có. Nếu không, từ này trở thành một khóa từ điển mới.
'elle' and 'leel'
3

Nó thời gian để kiểm tra mã của chúng tôi.

'elle' and 'leel'
4

Và đầu ra là…

'elle' and 'leel'
5

Nó hoạt động như chúng tôi mong đợi!

Sử dụng bộ sưu tập.Count () để tìm kiếm A -ANAGRAM

Một cách khác để kiểm tra xem hai chuỗi có phải là đối thủ của nhau không phải là bằng cách sử dụng hàm bộ đếm () của mô -đun bộ sưu tập.

Đưa ra một chuỗi, hàm bộ đếm () trả về một đối tượng giống như từ điển trong đó các khóa là các ký tự của chuỗi và các giá trị là số lần mỗi ký tự xuất hiện trong chuỗi.

Đây là một ví dụ:

'elle' and 'leel'
6

Bây giờ, hãy để áp dụng chức năng bộ đếm cho chuỗi ‘TAC.

'elle' and 'leel'
7

Chúng ta chỉ có thể so sánh hai đối tượng được trả về để xác minh xem hai chuỗi có phải là đối thủ của nhau không.

'elle' and 'leel'
8

Một thủ thuật khác bạn có thể sử dụng trong các chương trình Python của mình! 🙂

Sự kết luận

Trong hướng dẫn này, chúng tôi đã trải qua nhiều cách xác minh nếu hai chuỗi là cách tử của nhau.

Chúng ta cũng đã thấy cách tìm cách tìm từ của một từ trong danh sách các từ và cách tạo các từ được tạo thành từ hoán vị của tất cả các ký tự trong một từ duy nhất.

Tôi biết nó khá nhiều, tôi hy vọng bạn đã thấy nó hữu ích! 😉

Bài viết liên quan:

Hướng dẫn how do you make an anagram program in python? - làm thế nào để bạn tạo một chương trình đảo chữ trong python?

Tôi là một nhà lãnh đạo công nghệ, kỹ sư phần mềm và huấn luyện viên lập trình. Tôi muốn giúp bạn trong hành trình trở thành một nhà phát triển siêu!

ANAGram trong Python là gì?

Một đảo chữ của một chuỗi là một chuỗi khác chứa cùng các ký tự, chỉ thứ tự của các ký tự có thể khác nhau. Ví dụ, ABCD, và Dab Dabc là những kẻ gây rối của nhau. Ví dụ: Đầu vào: str1 = Hồi ABCD, str2 = đầu ra của Dab Dabc: Đúng đầu vào: str1 = Hồi ABCF, str2 = đầu ra của KABC KABC: Sai.another string that contains same characters, only the order of characters can be different. For example, “abcd” and “dabc” are anagram of each other. Examples: Input : str1 = “abcd”, str2 = “dabc” Output : True Input : str1 = “abcf”, str2 = “kabc” Output : False.

Làm thế nào để bạn tìm thấy cách đối tượng của một từ trong Python?

Chỉ cần sử dụng phương thức truy cập có sẵn trong gói Bộ sưu tập Python3.str1 = "abc" str2 = "cab" bộ đếm (str1) == bộ đếm (str2) # trả về đúng tức là cả hai chuỗi đều là phương pháp của nhau.use the Counter method available in Python3 collections package. str1="abc" str2="cab" Counter(str1)==Counter(str2) # returns True i.e both Strings are anagrams of each other.

Làm thế nào để bạn viết một mã palindrom trong Python?

Chương trình Palindrom..
str = 'javaj'.
strstr = str.case fold ().
# Chuỗi này là đảo ngược ..
Rev = đảo ngược (str).
Nếu danh sách (str) == Danh sách (rev):.
in ("palindrom!").
In ("Không palindrom!").

Làm thế nào để bạn kiểm tra xem hai từ có phải là đảo chữ trong Python không?

Dưới đây là mã nguồn của chương trình Python để phát hiện nếu hai chuỗi là đảo chữ.Đầu ra chương trình cũng được hiển thị dưới đây.S1 = RAW_INPUT ("Nhập chuỗi đầu tiên:") S2 = RAW_INPUT ("Nhập chuỗi thứ hai:") if (Sắp xếp (S1) == Sắp xếp (S2)): In ("Các chuỗi là ANAGRAMS.")"Các chuỗi không phải là đối thủ.") 1.