2012-01-02 40 views
74

Tôi muốn triển khai HashMap bằng Python. Tôi muốn hỏi người dùng về đầu vào. tùy thuộc vào đầu vào của mình tôi đang lấy một số thông tin từ HashMap. Nếu người dùng nhập một khóa của HashMap, tôi muốn lấy giá trị tương ứng.Bản đồ băm trong Python

Làm cách nào để triển khai chức năng này bằng Python?

HashMap<String,String> streetno=new HashMap<String,String>(); 
    streetno.put("1", "Sachin Tendulkar"); 
    streetno.put("2", "Dravid"); 
    streetno.put("3","Sehwag"); 
    streetno.put("4","Laxman"); 
    streetno.put("5","Kohli") 
+0

http://meta.stackexchange.com/questions/15650/ban-lmgtfy-let-me-google-that-for-you-links – Alan

Trả lời

135

Python dictionary là loại được xây dựng sẵn hỗ trợ các cặp khóa-giá trị.

streetno = {"1":"Sachine Tendulkar", "2":"Dravid", "3":"Sehwag", "4":"Laxman","5":"Kohli"} 

cũng như sử dụng các từ khóa dict:

streetno = dict({"1":"Sachine Tendulkar", "2":"Dravid"}) 

hay:

streetno = {} 
streetno["1"] = "Sachine Tendulkar" 
+4

Ví dụ thứ hai chỉ xây dựng một dict theo cùng một cách như trước và sau đó sao chép nó. Cách sử dụng khác 'dict', sẽ có nhiều người dùng hơn trong ngữ cảnh này, là' dict (key1 = value1, key2 = value2, ...) 'nhưng yêu cầu các khóa tới các chuỗi cũng là các mã nhận dạng Python hợp lệ (và nội bộ, điều này cũng tạo ra một từ điển). – delnan

+0

Ah thú vị, tôi đã không nhận ra rằng các chuỗi khỏa thân là số nhận dạng hợp lệ. – Alan

+0

Tôi không chắc chắn nếu tôi hiểu bạn một cách chính xác ("chuỗi khỏa thân" là gì?), Nhưng tôi tin rằng bạn đã nhận nó ngược. Ví dụ thứ hai được cập nhật của bạn không hợp lệ và tôi không bao giờ có ý định tuyên bố một cái gì đó giống như công việc đó. [Đối số từ khóa] (http: //docs.python.Cú pháp org/tutorial/controlflow.html # keyword-arguments), chấp nhận * chỉ * các số nhận dạng khỏa thân, sử dụng từ điển trong nội bộ. Phương thức khởi tạo 'dict' hỗ trợ các đối số từ khóa và hoạt động như' def dict (** kwds): trả về kwds' nếu các đối số từ khóa đã cho. – delnan

8

bản đồ Hash được tích hợp sẵn trong Python, chúng được gọi dictionaries:

streetno = {}      #create a dictionary called streetno 
streetno["1"] = "Sachin Tendulkar" #assign value to key "1" 

Cách sử dụng:

"1" in streetno      #check if key "1" is in streetno 
streetno["1"]      #get the value from key "1" 

Xem tài liệu để biết thêm thông tin, ví dụ: được xây dựng trong các phương pháp và như vậy. Chúng tuyệt vời và rất phổ biến trong các chương trình Python (không ngạc nhiên).

14

Tất cả những gì bạn muốn (tại thời điểm câu hỏi ban đầu được hỏi) là một gợi ý. Đây là gợi ý: Trong Python, bạn có thể sử dụng dictionaries.

11

Nó được tích hợp sẵn cho Python. Xem dictionaries.

Dựa trên ví dụ của bạn:

streetno = {"1": "Sachine Tendulkar", 
      "2": "Dravid", 
      "3": "Sehwag", 
      "4": "Laxman", 
      "5": "Kohli" } 

Sau đó, bạn có thể truy cập vào nó như vậy:

sachine = streetno["1"] 

Cũng đáng nói: nó có thể sử dụng bất kỳ loại dữ liệu không thể thay đổi như một chìa khóa. Nghĩa là, nó có thể sử dụng một bộ tuple, boolean hoặc chuỗi làm khóa.

9
streetno = { 1 : "Sachin Tendulkar", 
      2 : "Dravid", 
      3 : "Sehwag", 
      4 : "Laxman", 
      5 : "Kohli" } 

Và để lấy giá trị:

name = streetno.get(3, "default value") 

Hoặc

name = streetno[3] 

Đó là sử dụng số như phím, đặt dấu ngoặc kép quanh các con số để sử dụng chuỗi như là chìa khóa.

Các vấn đề liên quan