Hướng dẫn how do i compare multiple strings in python? - làm cách nào để so sánh nhiều chuỗi trong python?

Tôi đang cố gắng so sánh một chuỗi gọi là

if facility == "auth" or facility == "authpriv" ...
4 với nhiều chuỗi có thể để kiểm tra xem nó có hợp lệ không. Các chuỗi hợp lệ là:

Show
auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0, ... , local7

Có một cách hiệu quả để làm điều này ngoài:

if facility == "auth" or facility == "authpriv" ...

hỏi ngày 27 tháng 7 năm 2011 lúc 0:35Jul 27, 2011 at 0:35

3

Nếu, OTOH, danh sách các chuỗi của bạn thực sự dài một cách gớm ghiếc, hãy sử dụng một bộ:

accepted_strings = {'auth', 'authpriv', 'daemon'}

if facility in accepted_strings:
    do_stuff()

Trung bình kiểm tra ngăn chặn trong một bộ là O (1).

Hướng dẫn how do i compare multiple strings in python? - làm cách nào để so sánh nhiều chuỗi trong python?

Đã trả lời ngày 27 tháng 7 năm 2011 lúc 0:49Jul 27, 2011 at 0:49

Hướng dẫn how do i compare multiple strings in python? - làm cách nào để so sánh nhiều chuỗi trong python?

Pillmuncherpillmuncherpillmuncher

9,9642 Huy hiệu vàng34 Huy hiệu bạc33 Huy hiệu đồng2 gold badges34 silver badges33 bronze badges

4

Trừ khi danh sách các chuỗi của bạn dài một cách gớm ghiếc, một cái gì đó như thế này có lẽ là tốt nhất:

accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()

Đã trả lời ngày 27 tháng 7 năm 2011 lúc 0:37Jul 27, 2011 at 0:37

4

Để kiểm tra hiệu quả nếu một chuỗi có khớp với một trong nhiều không, hãy sử dụng điều này:

allowed = set(('a', 'b', 'c'))
if foo in allowed:
    bar()

if facility == "auth" or facility == "authpriv" ...
5S được băm, các bộ sưu tập các mặt hàng không được tối ưu hóa để xác định xem một mặt hàng nhất định có ở trong đó hay không.

Đã trả lời ngày 27 tháng 7 năm 2011 lúc 0:49Jul 27, 2011 at 0:49

PillmuncherpillmuncherColin Valliant

9,9642 Huy hiệu vàng34 Huy hiệu bạc33 Huy hiệu đồng1 gold badge13 silver badges20 bronze badges

3

Python bất kỳ () hàm

Python bất kỳ () chức năng chấp nhận có thể lặp lại (danh sách, tuple, từ điển, v.v.) như một đối số và trả về đúng nếu bất kỳ yếu tố nào trong ITable là đúng, nếu không nó sẽ trả về sai. Nếu đối tượng có thể xóa, hàm bất kỳ () sẽ trả về sai.any() function accepts iterable (list, tuple, dictionary etc.) as an argument and return true if any of the element in iterable is true , else it returns false . If the iterable object is empty, the any() function will return False.

bất kỳ vs tất cả

  1. Bất kỳ sẽ trả về đúng khi ít nhất một trong các yếu tố là sự thật. will return True when at least one of the elements is Truthy.
  2. Tất cả sẽ trở lại chỉ đúng khi tất cả các yếu tố là sự thật. will return True only when all the elements are Truthy.

Kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác không

Trong trường hợp này, chúng ta có thể sử dụng python "bất kỳ ()"."any()" .

Ở đây, tập lệnh trả về "tìm thấy một trận đấu", bởi vì ít nhất một từ tồn tại trong danh sách.

Ví dụ 2:

đầu ra

Cách kiểm tra xem chuỗi có chứa chất nền từ danh sách không

Nếu danh sách của bạn quá dài, tốt hơn là sử dụng biểu thức thông thường của Python.Regular Expression .

Ví dụ trên trả về "Tìm thấy một trận đấu" vì "một" tồn tại trong danh sách.

Kiểm tra xem một chuỗi có chứa nhiều từ khóa không

Bạn cũng có thể tìm thấy một giải pháp cho việc này bằng cách sử dụng lặp lại.iteration .

Tập lệnh trên "Tìm thấy một trận đấu" bởi vì "một" tồn tại trong danh sách Myl.

Tất cả các trận đấu bao gồm các bản sao trong một chuỗi

Nếu bạn muốn nhận tất cả các trận đấu bao gồm các bản sao từ danh sách:

Hướng dẫn how do i compare multiple strings in python? - làm cách nào để so sánh nhiều chuỗi trong python?

Từ đầu tiên phù hợp trong một chuỗi từ danh sách

Nếu bạn muốn trận đấu đầu tiên với FALSE là mặc định:

Ví dụ trên trả về "một" bởi vì từ "một" là từ bắt đầu và cũng tồn tại trong danh sách myl.

Làm thế nào để trích xuất các từ đầu tiên và cuối cùng từ một chuỗi?

Hướng dẫn how do i compare multiple strings in python? - làm cách nào để so sánh nhiều chuỗi trong python?

Tương tự để kiểm tra xem tất cả các chuỗi trong danh sách có được tìm thấy không, hãy sử dụng "tất cả" thay vì "bất kỳ" nào."all" instead of "any" .

Hướng dẫn how do i compare multiple strings in python? - làm cách nào để so sánh nhiều chuỗi trong python?

Ví dụ trên trả về sai vì "sáu" không có trong chuỗi.



Các chuỗi trong Python được so sánh với các toán tử

if facility == "auth" or facility == "authpriv" ...
6 và
if facility == "auth" or facility == "authpriv" ...
7. Chúng so sánh nếu hai chuỗi python tương đương hoặc không tương đương, tương ứng. Họ trả lại
if facility == "auth" or facility == "authpriv" ...
8 hoặc
if facility == "auth" or facility == "authpriv" ...
9.


Thông thường, khi bạn làm việc với các chuỗi trong Python, bạn có thể muốn so sánh chúng với nhau. Ví dụ: bạn có thể muốn so sánh địa chỉ email của người dùng với địa chỉ bạn đã lưu trữ trong cơ sở dữ liệu khi bạn yêu cầu họ đặt lại mật khẩu của họ.

Hướng dẫn how do i compare multiple strings in python? - làm cách nào để so sánh nhiều chuỗi trong python?

Tìm Bootcamp của bạn phù hợp

  • Karma nghề nghiệp phù hợp với bạn với bootcamp công nghệ hàng đầu
  • Truy cập các học bổng và khóa học chuẩn bị độc quyền

Chọn mối quan tâm của bạn họ Tên điện thoại Email Tên của bạn
First name

Last name

Email

Phone number

Bằng cách tiếp tục, bạn đồng ý với các điều khoản dịch vụ và chính sách quyền riêng tư của chúng tôi và bạn đồng ý nhận được các ưu đãi và cơ hội từ Karma nghề nghiệp qua điện thoại, tin nhắn văn bản và email.

Python bao gồm một số toán tử so sánh có thể được sử dụng để so sánh các chuỗi. Các toán tử này cho phép bạn kiểm tra cách các chuỗi so sánh với nhau và trả về giá trị đúng hoặc sai dựa trên kết quả.

Hướng dẫn này sẽ thảo luận về các toán tử so sánh có sẵn để so sánh các chuỗi trong Python. Chúng tôi sẽ đi qua một ví dụ về từng nhà khai thác này để cho thấy cách chúng hoạt động và cách bạn có thể sử dụng chúng trong mã của mình. Nếu bạn đang tìm cách học cách so sánh các chuỗi trong Python, bài viết này là dành cho bạn.

Chuỗi python là và không bằng

Chuỗi là chuỗi các ký tự có thể bao gồm số, chữ cái, ký hiệu và khoảng trắng. Chuỗi là một loại dữ liệu quan trọng vì chúng cho phép các lập trình viên tương tác với dữ liệu dựa trên văn bản trong các chương trình của họ.

Khi bạn làm việc với một chuỗi, bạn có thể muốn xem liệu một chuỗi có hay không bằng chuỗi khác. Đó là nơi mà các toán tử so sánh chuỗi

if facility == "auth" or facility == "authpriv" ...
6 và
if facility == "auth" or facility == "authpriv" ...
7 xuất hiện.

Toán tử bình đẳng

if facility == "auth" or facility == "authpriv" ...
6 trả về true nếu hai giá trị khớp với nhau; Nếu không, người vận hành trả về sai. Toán tử
if facility == "auth" or facility == "authpriv" ...
7 trả về true nếu hai giá trị không khớp và sai nếu hai giá trị khớp.

Điều quan trọng cần lưu ý là so sánh chuỗi là nhạy cảm trường hợp. Vì vậy, các chữ cái chữ thường và chữ hoa sẽ ảnh hưởng đến kết quả của các so sánh bạn thực hiện trong chương trình Python của bạn.case sensitive. So, lowercase letters and uppercase letters will affect the result of the comparisons you perform in your Python program.

Hãy nói rằng bạn đang xây dựng một trò chơi kiểm tra người chơi về kiến ​​thức về thủ đô của họ. Để kiếm điểm, người chơi phải trả lời chính xác một câu hỏi. Vì vậy, một người chơi có thể được trao cho bang California và để đạt được điểm, họ sẽ cần phải vào rằng thủ đô là Sacramento vào chương trình.

Dưới đây, một ví dụ về ứng dụng trò chơi đoán này so sánh câu trả lời của người dùng với câu trả lời được lưu trữ bởi chương trình:

random_state = "Delaware"

message = "What is the capital of ", random_state
user_answer = input(message)

state_capital = "Dover"

if user_answer == state_capital:
	print("You are correct!")
else:
	print("The capital of ", random_state, "is", state_capital)

Ở đây, những gì xảy ra khi chúng ta chạy trò chơi đoán của mình và đoán chính xác thủ đô của Del biết là Dover:

What is the capital of Delaware
Dover
You are correct!

Các chuỗi của chúng tôi bằng nhau, vì vậy

accepted_strings = {'auth', 'authpriv', 'daemon'}

if facility in accepted_strings:
    do_stuff()
4 của chúng tôi đánh giá để sửa và in ra
accepted_strings = {'auth', 'authpriv', 'daemon'}

if facility in accepted_strings:
    do_stuff()
5. Nếu chúng ta đoán không chính xác vốn nhà nước là Denver, mã của chúng ta sẽ trả về:

What is the capital of Delaware
Denver
The capital of Delaware of Dover

Hãy để chia nhỏ mã của chúng tôi. Trong lần đầu tiên, chúng tôi tuyên bố trạng thái ngẫu nhiên của chúng tôi, trong trường hợp này là Del biết. Sau đó, chúng tôi sử dụng phương thức người dùng

accepted_strings = {'auth', 'authpriv', 'daemon'}

if facility in accepted_strings:
    do_stuff()
6 để hỏi người dùng
accepted_strings = {'auth', 'authpriv', 'daemon'}

if facility in accepted_strings:
    do_stuff()
7.

Chương trình của chúng tôi sau đó tuyên bố vốn nhà nước là Dover và sử dụng tuyên bố

accepted_strings = {'auth', 'authpriv', 'daemon'}

if facility in accepted_strings:
    do_stuff()
8 để so sánh liệu vốn nhà nước có được lưu trữ có bằng với những gì người dùng đã nhập hay không.

Khi chúng tôi nhập

accepted_strings = {'auth', 'authpriv', 'daemon'}

if facility in accepted_strings:
    do_stuff()
9, câu lệnh IF được đánh giá là TRUE, vì vậy chương trình của chúng tôi đã in tin nhắn
accepted_strings = {'auth', 'authpriv', 'daemon'}

if facility in accepted_strings:
    do_stuff()
5 lên bảng điều khiển. Khi chúng tôi nhập
accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()
1, câu lệnh của chúng tôi đã đánh giá sai, vì vậy chương trình của chúng tôi đã thực hiện mã trong câu lệnh in
accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()
2.

Python là nhà điều hành

Phương pháp phổ biến nhất được sử dụng để so sánh các chuỗi là sử dụng các toán tử

if facility == "auth" or facility == "authpriv" ...
6 và
if facility == "auth" or facility == "authpriv" ...
7, so sánh các biến dựa trên giá trị của chúng. Tuy nhiên, nếu bạn muốn so sánh xem hai trường hợp đối tượng có giống nhau dựa trên ID đối tượng của chúng hay không, thay vào đó bạn có thể muốn sử dụng
accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()
5 và
accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()
6.

Sự khác biệt giữa

if facility == "auth" or facility == "authpriv" ...
6 và
accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()
5 (và
if facility == "auth" or facility == "authpriv" ...
7 và
accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()
6) là toán tử so sánh
if facility == "auth" or facility == "authpriv" ...
6 so sánh hai biến dựa trên giá trị thực của chúng và từ khóa
accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()
5 so sánh hai biến dựa trên ID đối tượng của chúng.

Hãy để sử dụng một ví dụ. Nói rằng chúng tôi có điểm của hai người dùng được lưu trữ dưới dạng chuỗi và chúng tôi muốn xem liệu chúng có giống nhau hay không. Chúng tôi có thể làm như vậy bằng cách sử dụng mã sau:

player_one_score = "100"
player_two_score = "100"

if player_one_score is player_two_score:
print("Player #1 and #2 have the same number of points.")
else:
	print("Player #1 and #2 do not have the same number of points.")

Mã của chúng tôi trả về:

Player #1 and #2 have the same number of points. 

Trong mã trên, chúng tôi cũng có thể đã sử dụng toán tử

if facility == "auth" or facility == "authpriv" ...
6. Tuy nhiên, chúng tôi đã sử dụng toán tử
accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()
5 vì nó sử dụng hết bộ nhớ và chúng tôi chỉ cần so sánh hai đối tượng.

Tuyên bố

allowed = set(('a', 'b', 'c'))
if foo in allowed:
    bar()
5 được đánh giá là TRUE trong chương trình của chúng tôi vì cả hai biến
allowed = set(('a', 'b', 'c'))
if foo in allowed:
    bar()
6 và
allowed = set(('a', 'b', 'c'))
if foo in allowed:
    bar()
7 đều có cùng một ID đối tượng. Chúng tôi có thể kiểm tra các ID này bằng cách sử dụng từ khóa
allowed = set(('a', 'b', 'c'))
if foo in allowed:
    bar()
8:

if facility == "auth" or facility == "authpriv" ...
0

Mã của chúng tôi trả về:

if facility == "auth" or facility == "authpriv" ...
1

Trong mã trên, chúng tôi cũng có thể đã sử dụng toán tử

if facility == "auth" or facility == "authpriv" ...
6. Tuy nhiên, chúng tôi đã sử dụng toán tử
accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()
5 vì nó sử dụng hết bộ nhớ và chúng tôi chỉ cần so sánh hai đối tượng.

Tuyên bố allowed = set(('a', 'b', 'c')) if foo in allowed: bar() 5 được đánh giá là TRUE trong chương trình của chúng tôi vì cả hai biến allowed = set(('a', 'b', 'c')) if foo in allowed: bar() 6 và allowed = set(('a', 'b', 'c')) if foo in allowed: bar() 7 đều có cùng một ID đối tượng. Chúng tôi có thể kiểm tra các ID này bằng cách sử dụng từ khóa allowed = set(('a', 'b', 'c')) if foo in allowed: bar() 8:

Như bạn có thể thấy, các đối tượng của chúng tôi giống nhau, và do đó, toán tử

accepted_strings = ['auth', 'authpriv', 'daemon'] # etc etc 

if facility in accepted_strings:
    do_stuff()
5 được đánh giá là true. Nói chung, bạn nên sử dụng
if facility == "auth" or facility == "authpriv" ...
6 khi bạn so sánh các loại dữ liệu bất biến như chuỗi và số, và khi so sánh các đối tượng.

  • Python các nhà khai thác so sánh khác
  • Ngoài ra, bạn có thể so sánh các chuỗi theo thứ tự từ vựng bằng Python. Thứ tự từ vựng đề cập đến việc đặt hàng các chữ cái dựa trên thứ tự bảng chữ cái của các chữ cái thành phần của chúng. Để làm như vậy, chúng ta có thể sử dụng các nhà khai thác so sánh khác được cung cấp bởi Python. Đây là như sau:
  • random_state = "Delaware"
    
    message = "What is the capital of ", random_state
    user_answer = input(message)
    
    state_capital = "Dover"
    
    if user_answer == state_capital:
    	print("You are correct!")
    else:
    	print("The capital of ", random_state, "is", state_capital)
    1 - ít hơn
  • random_state = "Delaware"
    
    message = "What is the capital of ", random_state
    user_answer = input(message)
    
    state_capital = "Dover"
    
    if user_answer == state_capital:
    	print("You are correct!")
    else:
    	print("The capital of ", random_state, "is", state_capital)
    2 - lớn hơn

random_state = "Delaware"

message = "What is the capital of ", random_state
user_answer = input(message)

state_capital = "Dover"

if user_answer == state_capital:
	print("You are correct!")
else:
	print("The capital of ", random_state, "is", state_capital)
3 - ít hơn hoặc bằng

random_state = "Delaware"

message = "What is the capital of ", random_state
user_answer = input(message)

state_capital = "Dover"

if user_answer == state_capital:
	print("You are correct!")
else:
	print("The capital of ", random_state, "is", state_capital)
4 - lớn hơn hoặc bằng

if facility == "auth" or facility == "authpriv" ...
2

Hãy nói rằng chúng tôi đã tạo ra một chương trình lấy hai tên sinh viên và trả lại một tin nhắn có tên đầu tiên trong bảng chữ cái.

Hướng dẫn how do i compare multiple strings in python? - làm cách nào để so sánh nhiều chuỗi trong python?

Chúng tôi có thể sử dụng mã sau để thực hiện nhiệm vụ này:

Mã của chúng tôi trả về:

if facility == "auth" or facility == "authpriv" ...
3

"Karma nghề nghiệp bước vào cuộc sống của tôi khi tôi cần nó nhất và nhanh chóng giúp tôi kết hợp với bootcamp. Hai tháng sau khi tốt nghiệp, tôi tìm thấy công việc mơ ước của mình phù hợp với các giá trị và mục tiêu của tôi trong cuộc sống!"

Sao Kim, Kỹ sư phần mềm tại Rockbot

Hãy để chia nhỏ mã của chúng tôi. Trên hai dòng đầu tiên, chúng tôi tuyên bố hai biến lưu trữ tên sinh viên của chúng tôi. Trong trường hợp này, những cái tên này là Penny và Paul.

Sau đó, chúng tôi tạo ra một câu lệnh IF sử dụng toán tử

random_state = "Delaware"

message = "What is the capital of ", random_state
user_answer = input(message)

state_capital = "Dover"

if user_answer == state_capital:
	print("You are correct!")
else:
	print("The capital of ", random_state, "is", state_capital)
5 để xác định xem tên Penny có đến trước tên Paul Paul theo thứ tự từ vựng hay không. Nếu điều này đánh giá đúng, một thông điệp được in vào bảng điều khiển nói với chúng tôi rằng Penny đến trước Paul trong bảng chữ cái.

Chúng tôi cũng tạo ra một tuyên bố random_state = "Delaware" message = "What is the capital of ", random_state user_answer = input(message) state_capital = "Dover" if user_answer == state_capital: print("You are correct!") else: print("The capital of ", random_state, "is", state_capital)6 sử dụng toán tử random_state = "Delaware" message = "What is the capital of ", random_state user_answer = input(message) state_capital = "Dover" if user_answer == state_capital: print("You are correct!") else: print("The capital of ", random_state, "is", state_capital)7 để xác định xem tên Penny có đến trước tên Paul Paul trong bảng chữ cái hay không. Nếu điều này đánh giá đúng, một thông điệp được in vào bảng điều khiển nói với người dùng rằng Paul đến trước Penny trong bảng chữ cái.

Trong trường hợp này, tên Paul Paul xuất hiện trước Penny, trong bảng chữ cái, vì vậy mã trong khối

random_state = "Delaware"

message = "What is the capital of ", random_state
user_answer = input(message)

state_capital = "Dover"

if user_answer == state_capital:
	print("You are correct!")
else:
	print("The capital of ", random_state, "is", state_capital)
6 của chúng tôi đánh giá là đúng và thông điệp
random_state = "Delaware"

message = "What is the capital of ", random_state
user_answer = input(message)

state_capital = "Dover"

if user_answer == state_capital:
	print("You are correct!")
else:
	print("The capital of ", random_state, "is", state_capital)
9. được in vào bảng điều khiển.

Sự kết luận

So sánh hai chuỗi là một tính năng quan trọng của Python. Chẳng hạn, bạn có thể tạo một biểu mẫu đăng nhập cần so sánh mật khẩu mà người dùng đã nhập với mật khẩu họ đã đặt cho tài khoản của họ.

Làm cách nào để so sánh nhiều giá trị chuỗi trong Python?

So sánh các chuỗi python bằng cách sử dụng == và! == "để so sánh hai chuỗi. Bạn có thể sử dụng toán tử" == "để kiểm tra chuỗi để tương tự và"! = "Toán tử để kiểm tra chuỗi để biết sự không nhất quán. Mỗi toán tử sẽ trả về giá trị boolean true hoặc false, tùy thuộc vào kết quả.using the == and != =" to compare two strings. You can use the "==" operator to test strings for similarity and the "! =" operator to check strings for inconsistencies. Each of the operators will return a boolean value True or False, depending on the result.

Làm thế nào để bạn so sánh ba chuỗi trong Python?

Các toán tử so sánh Python có thể được sử dụng để so sánh các chuỗi trong Python.Các toán tử này là: bằng (==), không bằng (! =), Lớn hơn (>), nhỏ hơn (<), nhỏ hơn hoặc bằng (=).equal to ( == ), not equal to ( != ), greater than ( > ), less than ( < ), less than or equal to ( <= ), and greater than or equal to ( >= ).

Làm thế nào để bạn kiểm tra nhiều chuỗi trong Python?

Bạn có thể sử dụng bất kỳ: A_String = "Một chuỗi nhiều hơn các phần của nó!"Matches = ["More", "lành mạnh", "sữa"] nếu có (x trong a_string cho x trong các trận đấu): Tương tự để kiểm tra xem tất cả các chuỗi từ danh sách có được tìm thấy, hãy sử dụng tất cả thay vì bất kỳ.Bất kỳ () có một sự khác biệt.a_string = "A string is more than its parts!" matches = ["more", "wholesome", "milk"] if any(x in a_string for x in matches): Similarly to check if all the strings from the list are found, use all instead of any . any() takes an iterable.

Tôi có thể sử dụng == để so sánh các chuỗi trong Python không?

==: Toán tử này kiểm tra xem hai chuỗi có bằng nhau không.! =: Toán tử này kiểm tra xem hai chuỗi không bằng nhau.This operator checks whether two strings are equal. !=: This operator checks whether two strings are not equal. <: This operator checks whether the string on the left side is smaller than the string on the right side.