Tôi đang cố gắng so sánh khóa trong từ điển với một chuỗi trong Python nhưng tôi không thể tìm thấy bất kỳ cách nào để làm điều này. Giả sử tôi có:
dict = {"a" : 1, "b" : 2}
Và tôi muốn so sánh khóa của chỉ mục đầu tiên trong từ điển [đó là "A"] với một chuỗi. Vì vậy, một cái gì đó như:
if ´Dictionary key´ == "a":
return True
else:
return False
Có cách nào để làm điều này? Đánh giá cao tất cả sự giúp đỡ tôi có thể nhận được.
Hỏi ngày 25 tháng 4 năm 2018 lúc 9:42Apr 25, 2018 at 9:42
5
Từ điển Python có các khóa và giá trị được truy cập bằng các khóa đó.keys and values accessed using those keys.
Bạn có thể truy cập các phím như sau, phím dict của bạn sẽ được lưu trữ trong biến
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
5:my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
Điều này sẽ in:
a
b
Sau đó, bạn có thể thực hiện bất kỳ so sánh nào bạn muốn:
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
if key == "a":
return True
else:
return False
có thể được cải thiện thành:
my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys[]
Sau đó, bạn có thể truy cập các giá trị cho từng khóa trong dict của bạn như sau:
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print my_dict[key]
Điều này sẽ in:
1
2
Sau đó, bạn có thể thực hiện bất kỳ so sánh nào bạn muốn:
có thể được cải thiện thành:Apr 25, 2018 at 9:46
Sau đó, bạn có thể truy cập các giá trị cho từng khóa trong dict của bạn như sau:Adam Jaamour
Tôi đề nghị bạn đọc thêm về từ điển từ tài liệu Python chính thức: //docs.python.org/3.6/tutorial1 gold badge18 silver badges31 bronze badges
3
result = True if "a" in dict.keys[] else False
return result
Đã trả lời ngày 25 tháng 4 năm 2018 lúc 9:46
Adam Jaamouradam Jaamour
for key in dict.keys[]:
#do something with key
1.2511 Huy hiệu vàng18 Huy hiệu bạc31 Huy hiệu đồngApr 25, 2018 at 10:00
Khi tôi phải so sánh hai từ điển lần đầu tiên, tôi đã đấu tranh rất nhiều!
Đối với từ điển đơn giản, so sánh chúng thường đơn giản. Bạn có thể sử dụng toán tử
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
8 và nó sẽ hoạt động.Tuy nhiên, khi bạn có nhu cầu cụ thể, mọi thứ trở nên khó khăn hơn. Lý do là, Python không có tính năng tích hợp cho phép chúng tôi:
- So sánh hai từ điển và kiểm tra xem có bao nhiêu cặp bằng nhau
- khẳng định từ điển lồng nhau là bằng nhau [so sánh bình đẳng sâu]
- Tìm sự khác biệt giữa hai
9s [Dict Diff]my_dict = {"a" : 1, "b" : 2} for key in my_dict: print key
- So sánh
9 có số điểm nổi dưới dạng giá trịmy_dict = {"a" : 1, "b" : 2} for key in my_dict: print key
Trong bài viết này, tôi sẽ chỉ ra cách bạn có thể thực hiện các hoạt động đó và nhiều hơn nữa, vì vậy hãy để đi.
Tại sao bạn cần một cách mạnh mẽ để so sánh từ điển
Hãy tưởng tượng kịch bản sau: Bạn có hai từ điển đơn giản. Làm thế nào chúng ta có thể khẳng định nếu chúng phù hợp? Dễ dàng, phải không?
Ừ! Bạn có thể sử dụng toán tử
8, khóa học!my_dict = {"a" : 1, "b" : 2} for key in my_dict: print key
if ´Dictionary key´ == "a":
return True
else:
return False
0Đó là loại mong đợi, từ điển là như nhau. Nhưng điều gì sẽ xảy ra nếu một số giá trị khác nhau, kết quả sẽ là
a
b
2 nhưng chúng ta có thể biết chúng khác nhau ở đâu không?if ´Dictionary key´ == "a":
return True
else:
return False
1Hum ... chỉ
2 không cho chúng ta biết nhiều ...a b
Thế còn ________ 34 bên trong
a
b
5. Hãy nói rằng chúng tôi muốn bỏ qua các trường hợp của họ.if ´Dictionary key´ == "a":
return True
else:
return False
2Oops...
Điều gì sẽ xảy ra nếu con số là
a
b
6 và chúng tôi coi hai chiếc phao là giống nhau nếu chúng có ít nhất 3 chữ số đáng kể bằng nhau? Đặt một cách khác, chúng tôi muốn kiểm tra xem chỉ có 3 chữ số sau trận đấu Decimal Point.if ´Dictionary key´ == "a":
return True
else:
return False
3Bạn cũng có thể muốn loại trừ một số trường khỏi so sánh. Ví dụ, bây giờ chúng tôi có thể muốn xóa giá trị
a
b
5-> khỏi kiểm tra. Trừ khi chúng tôi tạo ra một từ điển mới mà không có nó, không có phương pháp nào để làm điều đó cho bạn.Nó không thể trở nên tồi tệ hơn?
Có, điều gì sẽ xảy ra nếu một giá trị là một mảng
a
b
8?if ´Dictionary key´ == "a":
return True
else:
return False
4Ồ không, nó làm tăng một ngoại lệ ở giữa khuôn mặt của chúng tôi!
Chết tiệt, chúng ta có thể làm gì sau đó?
Vì
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
9 không thể thực hiện các so sánh nâng cao, chỉ có hai hình thức đạt được điều đó. Bạn có thể tự thực hiện chức năng hoặc sử dụng thư viện của bên thứ ba. Tại một số điểm trong cuộc sống của bạn, bạn có thể đã nghe về việc không phát minh lại bánh xe. Vì vậy, đó chính xác là những gì chúng ta sẽ làm trong hướng dẫn này.
Chúng tôi sẽ áp dụng một thư viện có tên
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
if key == "a":
return True
else:
return False
0, từ ZepWorks. my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
if key == "a":
return True
else:
return False
0 có thể chọn sự khác biệt giữa từ điển, vòng lặp, chuỗi và các đối tượng khác. Nó hoàn thành rằng bằng cách tìm kiếm các thay đổi một cách đệ quy.my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
if key == "a":
return True
else:
return False
0 không phải là đứa trẻ duy nhất trong khối, cũng có DictDiffer, được phát triển bởi những người ở Cern. my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
if key == "a":
return True
else:
return False
3 cũng mát mẻ nhưng thiếu rất nhiều tính năng làm cho my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
if key == "a":
return True
else:
return False
0 rất thú vị. Trong mọi trường hợp, tôi khuyến khích bạn xem xét cả hai và xác định cái nào phù hợp nhất với bạn.Thư viện này tuyệt vời đến mức nó không chỉ hoạt động với từ điển mà còn các vòng lặp, chuỗi và thậm chí các đối tượng tùy chỉnh khác. Ví dụ: bạn có thể "thậm chí trộn và kết hợp" và lấy sự khác biệt giữa hai danh sách các dicts.
Nhận được sự khác biệt đơn giản
Trong ví dụ này, chúng tôi sẽ giải quyết ví dụ đầu tiên tôi chỉ cho bạn. Chúng tôi muốn tìm khóa có giá trị khác nhau giữa hai
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
9. Hãy xem xét đoạn mã sau, nhưng lần này sử dụng my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
if key == "a":
return True
else:
return False
0.if ´Dictionary key´ == "a":
return True
else:
return False
5Đáng kinh ngạc! Nó cho chúng ta biết rằng khóa
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
if key == "a":
return True
else:
return False
7 có giá trị 1 nhưng my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
9, B mới có giá trị mới, 2.Bỏ qua trường hợp chuỗi
Trong ví dụ thứ hai của chúng tôi, chúng tôi đã thấy một ví dụ trong đó một yếu tố của danh sách ở chữ hoa, nhưng chúng tôi không quan tâm đến điều đó. Chúng tôi muốn bỏ qua nó và coi
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
if key == "a":
return True
else:
return False
9 là my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys[]
0Bạn có thể giải quyết điều đó bằng cách đặt
my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys[]
1if ´Dictionary key´ == "a":
return True
else:
return False
6Nếu chúng ta không làm điều đó, một thông điệp rất hữu ích được in.
if ´Dictionary key´ == "a":
return True
else:
return False
7So sánh giá trị float
Chúng tôi cũng đã thấy một trường hợp chúng tôi có một số
a
b
6 mà chúng tôi chỉ muốn kiểm tra xem 3 chữ số quan trọng đầu tiên có bằng nhau không. Với my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys[]
3, có thể vượt qua số chữ số chính xác sau điểm thập phân. Ngoài ra, vì a
b
6 khác với ________ 55, chúng tôi cũng có thể muốn bỏ qua so sánh loại. Chúng ta có thể giải quyết điều đó bằng cách đặt my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys[]
6.if ´Dictionary key´ == "a":
return True
else:
return False
8So sánh các giá trị a
b
8
a
b
Khi chúng tôi thử so sánh hai từ điển với một mảng
a
b
8 trong đó, chúng tôi đã thất bại thảm hại. May mắn thay, my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys[]
3 có lưng của chúng tôi ở đây. Nó hỗ trợ các đối tượng a
b
8 theo mặc định!if ´Dictionary key´ == "a":
return True
else:
return False
9Điều gì sẽ xảy ra nếu các mảng khác nhau?
Không vấn đề gì!
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
0Nó cho thấy rằng không chỉ các giá trị là khác nhau mà còn các loại!
So sánh từ điển với các đối tượng my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print my_dict[key]
1
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print my_dict[key]
Một trường hợp sử dụng phổ biến khác là so sánh các đối tượng
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print my_dict[key]
1. Loại đối tượng này có chữ ký sau:my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
1Trong trường hợp chúng tôi có
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
9 với các đối tượng my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print my_dict[key]
1, my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys[]
3 cho phép chúng tôi chỉ so sánh một số phần của nó. Chẳng hạn, nếu chỉ quan tâm đến năm, tháng và ngày, thì chúng ta có thể cắt ngắn nó.my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
2So sánh các giá trị chuỗi
Chúng tôi đã xem xét các ví dụ thú vị cho đến nay và đó là trường hợp sử dụng phổ biến để sử dụng
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
9 để lưu trữ các giá trị chuỗi. Có một cách tốt hơn để đối chiếu họ có thể giúp chúng ta rất nhiều! Trong phần này, tôi sẽ giải thích cho bạn một tính năng đáng yêu khác, a
b
4 Diff.my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
3Thật tuyệt! Chúng ta có thể thấy các dòng chính xác mà hai chuỗi khác nhau.
Không bao gồm các lĩnh vực
Trong ví dụ cuối cùng này, tôi sẽ cho bạn thấy một trường hợp sử dụng phổ biến khác, không bao gồm một trường. Chúng tôi có thể muốn loại trừ một hoặc nhiều mục từ so sánh. Chẳng hạn, sử dụng ví dụ trước, chúng tôi có thể muốn bỏ trường
my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print my_dict[key]
8.my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
print key
4Nếu bạn muốn các loại trừ cao cấp hơn,
my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys[]
3 cũng cho phép bạn vượt qua biểu thức regex. Kiểm tra điều này: zepworks.com/deepdiff/civerse/exclude_paths ...Sự kết luận
Đó là nó cho ngày hôm nay, các bạn! Tôi thực sự hy vọng bạn đã học được một cái gì đó mới và hữu ích. So sánh ________ 29 là một trường hợp sử dụng phổ biến vì chúng có thể được sử dụng để lưu trữ hầu hết mọi loại dữ liệu. Kết quả là, có một công cụ thích hợp để dễ dàng nỗ lực này là không thể thiếu.
my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys[]
3 có nhiều tính năng và có thể thực hiện các so sánh nâng cao hợp lý. Nếu bạn cần so sánh ________ 29, hãy kiểm tra nó.Bài viết khác mà bạn có thể thích:
Cách so sánh hai chuỗi trong Python [theo 8 cách dễ dàng]
Những cách tốt nhất để so sánh hai danh sách trong Python
Cách sắp xếp một quyền theo thứ tự giảm dần theo giá trị với Python
3 cách để đơn vị kiểm tra API API trong Python
7 tính năng và plugin pytest sẽ giúp bạn tiết kiệm hàng tấn thời gian
Cách sử dụng datetime.timedelta trong python với các ví dụ
Python's F-Strings: 73 ví dụ để giúp bạn làm chủ nó
Hẹn gặp lại bạn lần sau!
Bài đăng này ban đầu được xuất bản tại //miguendes.me