Hướng dẫn how to compare string with dictionary in python - cách so sánh chuỗi với từ điển trong python

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
    my_dict = {"a" : 1, "b" : 2}
    for key in my_dict:
        print key
    
    9s [Dict Diff]
  • So sánh
    my_dict = {"a" : 1, "b" : 2}
    for key in my_dict:
        print key
    
    9 có số điểm nổi dưới dạng giá trị

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ử

my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
    print key
8, khóa học!

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
1

Hum ... chỉ

a
b
2 không cho chúng ta biết nhiều ...

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
2

Oops...

Đ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
3

Bạ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 đó?

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[]
0

Bạ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[]
1

if ´Dictionary key´ == "a":
    return True
else:
    return False
6

Nế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
7

So 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
8

So sánh các giá trị
a
b
8

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
0

Nó 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

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
1

Trong 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
2

So 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
3

Thậ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
4

Nế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

Bạn có thể sử dụng == trên từ điển trong Python không?

Theo tài liệu Python, bạn thực sự có thể sử dụng toán tử == trên từ điển.you can indeed use the == operator on dictionaries.

Bạn có thể so sánh các giá trị trong một python từ điển không?

Phương thức so sánh CMP [] được sử dụng trong Python để so sánh các giá trị và khóa của hai từ điển.Nếu phương thức trả về 0 nếu cả hai từ điển đều bằng nhau, 1 nếu dic1> dict2 và -1 nếu dict1 dict2 and -1 if dict1 < dict2.

Python có thể so sánh các chuỗi với ==?

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 [ ], less than [ < ], less than or equal to [ = ].

Len có hoạt động với từ điển không?

Hàm Python Len [] được sử dụng để có được tổng chiều dài của từ điển, điều này bằng với số lượng các mục trong từ điển.Chức năng Len [] luôn trả về số lượng các mục được đưa ra trong từ điển Python.Phương pháp này hoạt động như một bộ đếm được tự động xác định dữ liệu., this is equal to the number of items in the dictionary. len[] function always returns the number of iterable items given in the Python dictionary. This method acts as a counter which is automatically defined the data.

Bài Viết Liên Quan

Chủ Đề