Hướng dẫn python check multiple variables for true - python kiểm tra nhiều biến cho đúng

Tôi có một bộ gồm ba biến X, Y, Z và tôi muốn kiểm tra xem tất cả chúng có chia sẻ cùng một giá trị không. Trong trường hợp của tôi, giá trị sẽ là 1 hoặc 0, nhưng tôi chỉ cần biết liệu tất cả chúng đều giống nhau. Hiện tại tôi đang sử dụngall share the same value. In my case, the value will either be 1 or 0, but I only need to know if they are all the same. Currently I'm using

if 1 == x and  1 == y and 1 == z: 
    sameness = True

Tìm kiếm câu trả lời tôi đã tìm thấy:

if 1 in {x, y, z}:

Tuy nhiên, điều này hoạt động như

if 1 == x or  1 == y or 1 == z: 
    atleastOneMatch = True

Có thể kiểm tra xem 1 có ở mỗi: x, y và z không? Tốt hơn nữa, có cách kiểm tra ngắn gọn hơn nếu X, Y và Z có cùng giá trị không?

(Nếu nó quan trọng, tôi sử dụng Python 3.)

Hướng dẫn python check multiple variables for true - python kiểm tra nhiều biến cho đúng

mkrieger1

16.2k4 Huy hiệu vàng50 Huy hiệu bạc58 Huy hiệu Đồng4 gold badges50 silver badges58 bronze badges

Khi được hỏi ngày 22 tháng 5 năm 2016 lúc 16:01May 22, 2016 at 16:01

Hướng dẫn python check multiple variables for true - python kiểm tra nhiều biến cho đúng

1

Nếu bạn có một chuỗi tùy ý, hãy sử dụng hàm

if 1 in {x, y, z}:
8 với biểu thức máy phát:

values = [x, y, z]  # can contain any number of values
if all(v == 1 for v in values):

Nếu không, chỉ cần sử dụng

if 1 in {x, y, z}:
9 trên cả ba biến:

if x == y == z == 1:

Nếu bạn chỉ cần biết liệu tất cả chúng đều có cùng một giá trị (bất kể đó là giá trị nào), hãy sử dụng:

if all(v == values[0] for v in values):

hoặc

if x == y == z:

Đã trả lời ngày 22 tháng 5 năm 2016 lúc 16:07May 22, 2016 at 16:07

Martijn Pieters ♦ Martijn PietersMartijn Pieters

998K280 Huy hiệu vàng3925 Huy hiệu bạc3264 Huy hiệu đồng280 gold badges3925 silver badges3264 bronze badges

5

Để kiểm tra xem chúng có giống nhau không (1 hoặc 2):

sameness = (x == y == z)

Các dấu ngoặc đơn là tùy chọn, nhưng tôi thấy nó cải thiện khả năng đọc

Đã trả lời ngày 22 tháng 5 năm 2016 lúc 16:10May 22, 2016 at 16:10

NeapolitanannapolitanNeapolitan

2.0118 Huy hiệu bạc20 Huy hiệu Đồng8 silver badges20 bronze badges

Còn cái này thì sao?

x == y == z == 1

Đã trả lời ngày 22 tháng 5 năm 2016 lúc 16:02May 22, 2016 at 16:02

Vedang Mehtavedang MehtaVedang Mehta

2.1848 Huy hiệu bạc22 Huy hiệu đồng8 silver badges22 bronze badges

Trong trường hợp của tôi, giá trị sẽ bằng 1 hoặc 2, nhưng tôi chỉ cần biết tất cả chúng đều giống nhaubut I only need to know if they are all the same

Có thể kiểm tra xem 1 có ở mỗi: x, y và z không? Tốt hơn nữa, có cách kiểm tra ngắn gọn hơn nếu X, Y và Z có cùng giá trị không?Better yet, is there a more concise way of checking simply if x, y, and z are the same value?

Sure:

x == y == z

(Nếu nó quan trọng, tôi sử dụng Python 3.)

if 1 in {x, y, z}:
0

16.2k4 Huy hiệu vàng50 Huy hiệu bạc58 Huy hiệu Đồng

if 1 in {x, y, z}:
1

Khi được hỏi ngày 22 tháng 5 năm 2016 lúc 16:01May 22, 2016 at 16:18

das-gdas-gdas-g

Nếu bạn có một chuỗi tùy ý, hãy sử dụng hàm

if 1 in {x, y, z}:
8 với biểu thức máy phát:3 gold badges37 silver badges77 bronze badges

Nếu không, chỉ cần sử dụng

if 1 in {x, y, z}:
9 trên cả ba biến:

if 1 in {x, y, z}:
2

Nếu bạn chỉ cần biết liệu tất cả chúng đều có cùng một giá trị (bất kể đó là giá trị nào), hãy sử dụng:

if 1 in {x, y, z}:
3

hoặc Creating a set means that each variable needs to be hashed and the hashed values need to be stored, but

if 1 in {x, y, z}:
8 with a generator expression is short-circuiting and keeps track of only two values at a time. Therefore, besides its readability, the generator expression is more efficient.

Đã trả lời ngày 22 tháng 5 năm 2016 lúc 16:07May 22, 2016 at 16:13

Hướng dẫn python check multiple variables for true - python kiểm tra nhiều biến cho đúng

Martijn Pieters ♦ Martijn Pieterszondo

998K280 Huy hiệu vàng3925 Huy hiệu bạc3264 Huy hiệu đồng7 gold badges43 silver badges83 bronze badges

4

Để kiểm tra xem chúng có giống nhau không (1 hoặc 2):

if 1 in {x, y, z}:
4

Đã trả lời ngày 22 tháng 5 năm 2016 lúc 16:07May 22, 2016 at 16:07

Martijn Pieters ♦ Martijn Pieterscuonglm

998K280 Huy hiệu vàng3925 Huy hiệu bạc3264 Huy hiệu đồng1 gold badge21 silver badges32 bronze badges

if 1 in {x, y, z}:
5

Để kiểm tra xem chúng có giống nhau không (1 hoặc 2):

Các dấu ngoặc đơn là tùy chọn, nhưng tôi thấy nó cải thiện khả năng đọcOct 30, 2019 at 13:02

Đã trả lời ngày 22 tháng 5 năm 2016 lúc 16:10cwhisperer

Neapolitanannapolitan1 gold badge31 silver badges59 bronze badges

2.0118 Huy hiệu bạc20 Huy hiệu Đồng

Còn cái này thì sao?: if all the values in any ittertable object is equal to given condition value, then Return True else return False.

Đã trả lời ngày 22 tháng 5 năm 2016 lúc 16:02

if 1 in {x, y, z}:
6

Vedang Mehtavedang Mehta: if any one value in any ittertable object is equal to given condition value, then Return True else return False.

Đã trả lời ngày 22 tháng 5 năm 2016 lúc 16:02

if 1 in {x, y, z}:
7

Vedang Mehtavedang MehtaJul 15, 2021 at 18:46

2.1848 Huy hiệu bạc22 Huy hiệu đồngArpan Saini

Trong trường hợp của tôi, giá trị sẽ bằng 1 hoặc 2, nhưng tôi chỉ cần biết tất cả chúng đều giống nhau35 silver badges48 bronze badges