Hướng dẫn how do i check if two characters are the same in python? - làm cách nào để kiểm tra xem hai ký tự có giống nhau trong python không?

Tôi đang cố gắng viết một chương trình để tìm một bức thư bị thiếu trong một loạt các chữ cái theo thứ tự bảng chữ cái. Ví dụ. [a, b, c, d, f] thiếu => 'e'.

Ngay bây giờ tôi có cái này:

def find_missing_letter(chars):

    # Creates variables of complete alphabet.

    alphabetLower = list(string.ascii_lowercase)
    enumeratedLower = []
    alphabetUpper = list(string.ascii_uppercase)
    enumeratedUpper = []

    # Checks if the function has to enumerate the upper- or lowercase alphabet.

    if(chars[0].islower()):
        for c, value in enumerate(alphabetLower, 1):
            enumeratedLower.append([c, value])
    else:
        for c, value in enumerate(alphabetUpper, 1):
            enumeratedUpper.append([c, value])

    # Checks at what letter the characters begin. 
    # After that it checks if the following letters are equal to eachother.

    if(chars[0].isupper()):
        for x in range(1, 26):
            print enumeratedUpper[x][1]
            print 'char:' + chars[0]
            if(chars[0] == enumeratedUpper[x][1]):
                for i in range(enumeratedUpper[x][0], len(chars)):
                    if(chars[i] != alphabetUpper[i]):
                        return alphabetUpper[i]
    else:
        for x in range(1, 26):
            print enumeratedLower[x][1]
            print 'char:' + chars[0]
            if(chars[0] == enumeratedLower[x][1]):
                for i in range(enumeratedLower[x][0], len(chars)):
                    if(chars[i] != alphabetLower[i]):
                        return alphabetLower[i]

Tuy nhiên, các câu lệnh if

if(chars[0] == enumeratedUpper[x][1]):

if(chars[0] == enumeratedLower[x][1]):

không làm việc vì một số lý do. Lý do cho câu lệnh này là vì một mảng ký tự (chars) nhất định, có thể bắt đầu ở một chữ cái ngẫu nhiên (không phải bắt đầu tại 'A' hoặc 'A'). Tôi đặt câu lệnh in ở đó để xem những gì sai và đầu ra là:

b
char:o
c
char:o
d
char:o
e
char:o
f
char:o
g
char:o
h
char:o
i
char:o
j
char:o
k
char:o
l
char:o
m
char:o
n
char:o
o
char:o
p
char:o
q
char:o
r
char:o
s
char:o
t
char:o
u
char:o
v
char:o
w
char:o
x
char:o
y
char:o
z
char:o

Kiểm tra xem hai chuỗi có cùng ký tự trong Python # không

Để kiểm tra xem hai chuỗi có cùng ký tự không:

  1. Sử dụng hàm sorted() để sắp xếp hai chuỗi.
  2. Sử dụng toán tử bình đẳng để so sánh kết quả.
  3. Nếu so sánh đánh giá thành True, hai chuỗi có cùng ký tự.

Copied!

def have_same_characters(str1, str2): return sorted(str1) == sorted(str2) print(have_same_characters('bob', 'obb')) # 👉️ True print(have_same_characters('bob', 'obbb')) # 👉️ False print(have_same_characters('bob', 'abc')) # 👉️ False

Chức năng được sắp xếp lấy một số khác và trả về một danh sách được sắp xếp mới từ các mục trong ITEBELLE.

Copied!

print(sorted('bob')) # 👉️ ['b', 'b', 'o'] print(sorted('obb')) # 👉️ ['b', 'b', 'o']

Nếu hai chuỗi có cùng chiều dài và chứa cùng một ký tự, so sánh sẽ đánh giá thành True.

Chúng tôi sắp xếp các ký tự trước khi so sánh, vì vậy thứ tự của các ký tự trong chuỗi không quan trọng.

Hàm từ mẫu mã trả về True chỉ khi hai chuỗi chứa cùng một ký tự và có cùng độ dài.

Nếu bạn cần kiểm tra xem hai chuỗi có cùng ký tự không, không xem xét độ dài của chuỗi và tần số của mỗi ký tự, hãy sử dụng vòng lặp

if(chars[0] == enumeratedUpper[x][1]):
1.

Copied!

def have_same_characters(str1, str2): for char in str1: if not char in str2: return False return True print(have_same_characters('bob', 'obb')) # 👉️ True print(have_same_characters('bob', 'obbbb')) # 👉️ True print(have_same_characters('abc', 'aabbcc')) # 👉️ True print(have_same_characters('bob', 'abc')) # 👉️ False

Chúng tôi đã sử dụng một vòng

if(chars[0] == enumeratedUpper[x][1]):
1 để lặp lại một trong các chuỗi.

Trên mỗi lần lặp, chúng tôi kiểm tra xem ký tự hiện tại có chứa trong chuỗi khác không.

Nếu điều kiện không được đáp ứng, chúng ta sẽ trả lại

if(chars[0] == enumeratedUpper[x][1]):
3 từ chức năng ngay lập tức.

Nếu điều kiện được đáp ứng cho tất cả các ký tự trong chuỗi, hàm sẽ trả về True.

Cách tiếp cận này chỉ kiểm tra xem tất cả các ký tự trong chuỗi A có chứa trong chuỗi B.

Hai chuỗi không phải có cùng chiều dài cho điều kiện được đáp ứng.