Hướng dẫn how do i find something in a dictionary python? - làm thế nào để tôi tìm thấy một cái gì đó trong một python từ điển?


Truy cập các mục

Bạn có thể truy cập các mục của từ điển bằng cách tham khảo tên khóa của nó, bên trong dấu ngoặc vuông:

Thí dụ

Nhận giá trị của khóa "Mô hình":

this
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
x = thisdict["model"]

Hãy tự mình thử »

Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

Thí dụ

Nhận giá trị của khóa "Mô hình":

this

Hãy tự mình thử »


Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

x = thisdict.get ("model")

Nhận chìa khóa

Thí dụ

Nhận giá trị của khóa "Mô hình":

this
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

Hãy tự mình thử »

Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

x = thisdict.get ("model")

Nhận chìa khóa

Hãy tự mình thử »



Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

x = thisdict.get ("model")

Nhận chìa khóa

Thí dụ

Phương pháp keys() sẽ trả về một danh sách tất cả các khóa trong từ điển.

this
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

Hãy tự mình thử »

Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

x = thisdict.get ("model")

Nhận chìa khóa

Hãy tự mình thử »

Thí dụ

Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

this
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

Hãy tự mình thử »

Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

x = thisdict.get ("model")

Nhận chìa khóa

Hãy tự mình thử »


Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

x = thisdict.get ("model")

Nhận chìa khóa

Thí dụ

Phương pháp keys() sẽ trả về một danh sách tất cả các khóa trong từ điển.

this
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

Hãy tự mình thử »

Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

x = thisdict.get ("model")

Nhận chìa khóa

Hãy tự mình thử »

Thí dụ

Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

this
"brand": "Ford",
"model": "Mustang",
"year": 1964
}

Hãy tự mình thử »

Ngoài ra còn có một phương pháp gọi là get() sẽ cho bạn cùng một kết quả:

x = thisdict.get ("model")

Nhận chìa khóa

Hãy tự mình thử »


Phương pháp keys() sẽ trả về một danh sách tất cả các khóa trong từ điển.

Danh sách các khóa là một chế độ xem từ điển, có nghĩa là bất kỳ thay đổi nào được thực hiện đối với từ điển sẽ được phản ánh trong danh sách các khóa.

Thí dụ

Thêm một mục mới vào từ điển gốc và xem danh sách các khóa cũng được cập nhật:

Car = {"Brand": "Ford", "Model": "Mustang", "Year": 1964}
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
if "model" in thisdict:
  print("Yes, 'model' is one of the keys in the thisdict dictionary")

Hãy tự mình thử »



Đã được trả lời, nhưng vì một số người đề cập đến việc đảo ngược từ điển, đây là cách bạn thực hiện nó trong một dòng (giả sử ánh xạ 1: 1) và một số dữ liệu hoàn hảo khác nhau:

Python 2.6:

reversedict = dict([(value, key) for key, value in mydict.iteritems()])

2.7+:

reversedict = {value:key for key, value in mydict.iteritems()}

Nếu bạn nghĩ rằng đó không phải là 1: 1, bạn vẫn có thể tạo một ánh xạ ngược hợp lý với một vài dòng:

reversedict = defaultdict(list)
[reversedict[value].append(key) for key, value in mydict.iteritems()]

Điều này chậm như thế nào: chậm hơn một tìm kiếm đơn giản, nhưng gần như không chậm như bạn nghĩ - trên từ điển nhập '100000' 100000, một tìm kiếm 'nhanh' (tức là tìm kiếm một giá trị nên sớm trong các khóa) nhanh hơn khoảng 10 lần so với đảo ngược toàn bộ từ điển và tìm kiếm 'chậm' (về cuối) nhanh hơn khoảng 4-5 lần. Vì vậy, sau nhiều nhất khoảng 10 lần tra cứu, nó đã được trả tiền cho chính nó.

Phiên bản thứ hai (với danh sách cho mỗi mục) mất khoảng 2,5 lần miễn là phiên bản đơn giản.

largedict = dict((x,x) for x in range(100000))

# Should be slow, has to search 90000 entries before it finds it
In [26]: %timeit largedict.keys()[largedict.values().index(90000)]
100 loops, best of 3: 4.81 ms per loop

# Should be fast, has to only search 9 entries to find it. 
In [27]: %timeit largedict.keys()[largedict.values().index(9)]
100 loops, best of 3: 2.94 ms per loop

# How about using iterkeys() instead of keys()?
# These are faster, because you don't have to create the entire keys array.
# You DO have to create the entire values array - more on that later.

In [31]: %timeit islice(largedict.iterkeys(), largedict.values().index(90000))
100 loops, best of 3: 3.38 ms per loop

In [32]: %timeit islice(largedict.iterkeys(), largedict.values().index(9))
1000 loops, best of 3: 1.48 ms per loop

In [24]: %timeit reversedict = dict([(value, key) for key, value in largedict.iteritems()])
10 loops, best of 3: 22.9 ms per loop

In [23]: %%timeit
....: reversedict = defaultdict(list)
....: [reversedict[value].append(key) for key, value in largedict.iteritems()]
....:
10 loops, best of 3: 53.6 ms per loop

Cũng có một số kết quả thú vị với ifilter. Về mặt lý thuyết, ifilter phải nhanh hơn, trong đó chúng ta có thể sử dụng itervalues ​​() và có thể không phải tạo/đi qua toàn bộ danh sách giá trị. Trong thực tế, kết quả là ... kỳ lạ ...

In [72]: %%timeit
....: myf = ifilter(lambda x: x[1] == 90000, largedict.iteritems())
....: myf.next()[0]
....:
100 loops, best of 3: 15.1 ms per loop

In [73]: %%timeit
....: myf = ifilter(lambda x: x[1] == 9, largedict.iteritems())
....: myf.next()[0]
....:
100000 loops, best of 3: 2.36 us per loop

Vì vậy, đối với các độ bù nhỏ, nó nhanh hơn đáng kể so với bất kỳ phiên bản trước nào (2.36 *u *s so với tối thiểu 1,48 *m *s cho các trường hợp trước đó). Tuy nhiên, đối với các độ bù lớn gần cuối danh sách, nó chậm hơn đáng kể (15,1ms so với cùng 1,48ms). Tiết kiệm nhỏ ở cấp thấp không đáng giá ở mức cao cấp, IMHO.

Làm thế nào để bạn kiểm tra xem một mặt hàng có ở trong một python từ điển không?

Bạn có thể kiểm tra xem một khóa có tồn tại hay không trong từ điển bằng cách sử dụng câu lệnh IF-IN/trong toán tử, get (), khóa (), xử lý ngoại lệ 'keyerror' và trong các phiên bản cũ hơn python 3, sử dụng has_key ().using if-in statement/in operator, get(), keys(), handling 'KeyError' exception, and in versions older than Python 3, using has_key().

Làm thế nào để tôi tìm thấy một giá trị cụ thể trong một từ điển?

Để truy cập giá trị từ điển trong Python, bạn có ba tùy chọn:..
Sử dụng từ điển.Giá trị () phương thức để có được tất cả các giá trị ..
Sử dụng dấu ngoặc vuông [] để nhận một giá trị duy nhất (không hoàn toàn) ..
Sử dụng từ điển.nhận () phương thức để nhận một giá trị một cách an toàn từ một từ điển ..

Làm cách nào để tìm một chìa khóa trong một từ điển?

Sử dụng phương thức sẵn có phương thức Get () trả về danh sách các khóa có sẵn trong từ điển.Với các phím phương thức sẵn (), sử dụng câu lệnh IF để kiểm tra xem khóa có có trong từ điển hay không.Nếu khóa có mặt, nó sẽ in ra hiện tại, nếu không, nó sẽ in không phải hiện tại.. With the Inbuilt method keys(), use the if statement to check if the key is present in the dictionary or not. If the key is present it will print “Present” Otherwise it will print “Not Present”.

Phương pháp nào được sử dụng để tìm vật phẩm từ từ điển?

Phương thức từ điển Python () Phương thức trong Từ điển Python, Phương thức Item () được sử dụng để trả về danh sách với tất cả các khóa từ điển có giá trị.Tham số: Phương thức này không có tham số.items() method In Python Dictionary, items() method is used to return the list with all dictionary keys with values. Parameters: This method takes no parameters.