Vòng lặp for trong từ điển python

Bạn có thể sử dụng

a juice
b grill
c corn
9 và
dt = {'a': 'juice', 'b': 'grill', 'c': 'corn'}

for key in dt:
    print[key, dt[key]]
0 để trả về các khóa và giá trị của từ điển một cách rõ ràng tương ứng

Nhiều bạn đã liên hệ với tôi để yêu cầu cung cấp các tài nguyên quý giá để hoàn thành các cuộc phỏng vấn Kỹ thuật dữ liệu dựa trên Python. Dưới đây tôi chia sẻ 3 khóa học theo yêu cầu mà tôi thực sự khuyên dùng

  • Bằng cấp nano về Kỹ thuật dữ liệu Python → Khóa học chất lượng cao + Dự án mã hóa nếu bạn có thời gian để cam kết. → Nhận GIẢM GIÁ 70% qua liên kết này
  • LeetCode trong Python. 50 câu hỏi phỏng vấn viết mã thuật toán → Tốt nhất cho các vòng viết mã liên quan đến thuật toán
  • Các vấn đề về mã hóa nâng cao của Python [StrataScratch] → Nền tảng tốt nhất mà tôi tìm thấy để chuẩn bị cho các cuộc phỏng vấn mã hóa Python & SQL cho đến nay. Tốt hơn và rẻ hơn LeetCode

Hy vọng bạn cũng sẽ thấy chúng hữu ích. Bây giờ thưởng thức bài viết. D

Giới thiệu

Từ điển Python được định nghĩa là một tập hợp các giá trị dữ liệu, trong đó các mục được giữ dưới dạng các cặp khóa-giá trị. Vì lý do này, từ điển còn được gọi là mảng kết hợp

Nếu bạn còn khá mới với Python hoặc bạn đang chuẩn bị cho vòng viết mã tiếp theo của mình, bạn có thể đã vấp phải một số thuật toán yêu cầu tương tác với từ điển

Tuy nhiên, có vẻ như các từ điển tiếp tục thu hút sự quan tâm không chỉ của những người mới mà còn của các nhà phát triển có kinh nghiệm hơn. Trên thực tế, khi xem xét các câu hỏi hàng đầu về Stack Overflow Python mọi thời đại, có vẻ như ba trong số các chủ đề được bình chọn nhiều nhất là

  • Làm cách nào để lặp lại từ điển bằng vòng lặp 'for'?
  • Làm cách nào để kiểm tra xem một khóa đã cho đã tồn tại trong từ điển chưa?
  • Làm cách nào để thêm một khóa mới vào từ điển?

Trong bài viết này, tôi sẽ cố gắng cung cấp cho bạn câu trả lời ngắn gọn và rõ ràng cho từng câu hỏi này. Điều này sẽ giúp bạn không phải xem qua hàng chục bình luận trên web

Hãy bắt đầu từ đầu. 👆👆🏽👆🏻

Làm cách nào để lặp lại từ điển bằng vòng lặp 'for'?

Để trả lời câu hỏi này, tôi đã tạo một từ điển bao gồm dữ liệu của một giao dịch ngân hàng trực tuyến giả

transaction_data = {
‘transaction_id’: 1000001,
‘source_country’: ‘United Kingdom’,
‘target_country’: ‘Italy’,
‘send_currency’: ‘GBP’,
‘send_amount’: 1000.00,
‘target_currency’: ‘EUR’,
‘fx_rate’: 1.1648674,
‘fee_pct’: 0.50,
‘platform’: ‘mobile’
}

Phương pháp 1. Lặp lại bằng vòng lặp For + Lập chỉ mục

Cách dễ nhất để duyệt qua một từ điển trong Python là đặt nó trực tiếp trong một vòng lặp

# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
4. Python sẽ tự động coi
# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
5 như một từ điển và cho phép bạn lặp lại các khóa của nó

Sau đó, để có quyền truy cập vào các giá trị, bạn có thể chuyển từng khóa vào từ điển bằng cách sử dụng toán tử lập chỉ mục

# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
6

# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile

Như bạn có thể thấy, các phím không được sắp xếp theo thứ tự bảng chữ cái. Để đạt được điều đó, bạn chỉ cần chuyển

# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
5 cho phương thức
# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
8

# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001

Phương pháp 2. Lặp lại bằng cách sử dụng. keys[] + Lập chỉ mục

Có thể thu được kết quả tương tự bằng cách sử dụng phương thức

# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
9 trả về một đối tượng Python bao gồm các khóa của từ điển

Điều này đặc biệt hữu ích khi bạn chỉ cần lặp lại các khóa của từ điển, nhưng nó cũng có thể được sử dụng kết hợp với toán tử lập chỉ mục để truy xuất các giá trị

# METHOD 2
for key in transaction_data.keys[]:
print[key, '-->', transaction_data[key]]
Output[3]:
transaction_id --> 1000001
source_country --> United Kingdom
target_country --> Italy
send_currency --> GBP
send_amount --> 1000.0
target_currency --> EUR
fx_rate --> 1.1648674
fee_pct --> 0.5
platform --> mobile

Phương pháp 3. Lặp lại bằng cách sử dụng. mặt hàng[ ]

Tuy nhiên, cách "pythonic" và tao nhã nhất để lặp qua từ điển là sử dụng phương thức

# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001
0, phương thức này trả về dạng xem các mục của từ điển dưới dạng bộ dữ liệu

print[transaction_data.items[]]Output[4]:
dict_items[[['transaction_id', 1000001],
['source_country', 'United Kingdom'],
['target_country', 'Italy'],
['send_currency', 'GBP'],
['send_amount', 1000.0],
['target_currency', 'EUR'],
['fx_rate', 1.1648674],
['fee_pct', 0.5],
['platform', 'mobile']]]

Để lặp lại các khóa và giá trị của từ điển

# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
5, bạn chỉ cần 'giải nén' hai mục được nhúng trong bộ dữ liệu như hình bên dưới

# METHOD 3
for k,v in transaction_data.items[]:
print[k,’>>’,v]
Output[5]:
transaction_id >> 1000001
source_country >> United Kingdom
target_country >> Italy
send_currency >> GBP
send_amount >> 1000.0
target_currency >> EUR
fx_rate >> 1.1648674
fee_pct >> 0.5
platform >> mobile

Lưu ý rằng k và v chỉ là bí danh tiêu chuẩn cho 'khóa' và 'giá trị', nhưng bạn cũng có thể chọn một quy ước đặt tên thay thế. Ví dụ: sử dụng a và b dẫn đến cùng một đầu ra

for a,b in transaction_data.items[]:
print[a,’~’,b]
Output[6]:
transaction_id ~ 1000001
source_country ~ United Kingdom
target_country ~ Italy
send_currency ~ GBP
send_amount ~ 1000.0
target_currency ~ EUR
fx_rate ~ 1.1648674
fee_pct ~ 0.5
platform ~ mobile

Bổ sung - Lặp lại thông qua các từ điển lồng nhau 🤓

Nhưng nếu bạn cần lặp qua một từ điển lồng nhau như thế nào

# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001
2 thì sao?

transaction_data_n = {
‘transaction_1’:{
‘transaction_id’: 1000001,
‘source_country’: ‘United Kingdom’,
‘target_country’: ‘Italy’,
‘send_currency’: ‘GBP’,
‘send_amount’: 1000.00,
‘target_currency’: ‘EUR’,
‘fx_rate’: 1.1648674,
‘fee_pct’: 0.50,
‘platform’: ‘mobile’
},
‘transaction_2’:{
‘transaction_id’: 1000002,
‘source_country’: ‘United Kingdom’,
‘target_country’: ‘Germany’,
‘send_currency’: ‘GBP’,
‘send_amount’: 3320.00,
‘target_currency’: ‘EUR’,
‘fx_rate’: 1.1648674,
‘fee_pct’: 0.50,
‘platform’: ‘Web’
},
‘transaction_3’:{
‘transaction_id’: 1000003,
‘source_country’: ‘United Kingdom’,
‘target_country’: ‘Belgium’,
‘send_currency’: ‘GBP’,
‘send_amount’: 1250.00,
‘target_currency’: ‘EUR’,
‘fx_rate’: 1.1648674,
‘fee_pct’: 0.50,
‘platform’: ‘Web’
}
}

Để giải nén các cặp khóa-giá trị thuộc từng từ điển lồng nhau, bạn có thể sử dụng vòng lặp sau

#1. Selecting key-value pairs for all the transactionsfor k, v in transaction_data_n.items[]:
if type[v] is dict:
for nk, nv in v.items[]:
print[nk,’ →’, nv]
#nk and nv stand for nested key and nested valueOutput[7]:
transaction_id --> 1000001
source_country --> United Kingdom
target_country --> Italy
send_currency --> GBP
send_amount --> 1000.0
target_currency --> EUR
fx_rate --> 1.1648674
fee_pct --> 0.5
platform --> mobile
transaction_id --> 1000002
source_country --> United Kingdom
target_country --> Germany
send_currency --> GBP
send_amount --> 3320.0
target_currency --> EUR
fx_rate --> 1.1648674
fee_pct --> 0.5
platform --> Web
transaction_id --> 1000003
source_country --> United Kingdom
target_country --> Belgium
send_currency --> GBP
send_amount --> 1250.0
target_currency --> EUR
fx_rate --> 1.1648674
fee_pct --> 0.5
platform --> Web
-----------------------------#2. Selecting key-value pairs for 'transaction_2 only'for k, v in transaction_data_n.items[]:
if type[v] is dict and k == 'transaction_2':
for sk, sv in v.items[]:
print[sk,'-->', sv]
Output[8]:
transaction_id --> 1000002
source_country --> United Kingdom
target_country --> Germany
send_currency --> GBP
send_amount --> 3320.0
target_currency --> EUR
fx_rate --> 1.1648674
fee_pct --> 0.5
platform --> Web
Làm thế nào để kiểm tra xem một khóa nhất định đã tồn tại trong từ điển chưa?

Bạn có thể kiểm tra tư cách thành viên trong từ điển Python bằng toán tử

# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001
3

Cụ thể, giả sử bạn muốn kiểm tra xem trường

# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001
4 có sẵn làm khóa trong
# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
5 hay không. Trong trường hợp này, bạn có thể chạy

‘send_currency’ in transaction_data.keys[]Output[9]:
True

Tương tự như vậy, để kiểm tra xem giá trị

# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001
6 đã được gán cho một khóa trong từ điển hay chưa, bạn có thể chạy

# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
0

Tuy nhiên, phần kiểm tra ở trên sẽ không cho bạn biết ngay nếu

# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001
6 là giá trị được gán cho khóa
# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001
4 hay khóa
# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001
9. Để xác nhận điều đó, bạn có thể truyền một tuple cho phương thức
# METHOD 2
for key in transaction_data.keys[]:
print[key, '-->', transaction_data[key]]
Output[3]:
transaction_id --> 1000001
source_country --> United Kingdom
target_country --> Italy
send_currency --> GBP
send_amount --> 1000.0
target_currency --> EUR
fx_rate --> 1.1648674
fee_pct --> 0.5
platform --> mobile
0

# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
1

Nếu từ điển

# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
5 bao gồm hàng trăm giá trị, thì đây sẽ là cách hoàn hảo để kiểm tra xem
# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001
6 có thực sự là
# METHOD 1 - Sorted
for key in sorted[transaction_data]:
print[key, ‘:’, transaction_data[key]]
Output[2]:
fee_pct : 0.5
fx_rate : 1.1648674
platform : mobile
send_amount : 1000.0
send_currency : GBP
source_country : United Kingdom
target_country : Italy
target_currency : EUR
transaction_id : 1000001
4 cho giao dịch cụ thể đó không

tiện dụng. 😏😏😏

Làm cách nào để thêm một khóa mới vào từ điển?

Cuối cùng, hãy giả sử rằng, tại một thời điểm nào đó, Nhóm Phân tích đã yêu cầu bạn thêm cả hai trường

# METHOD 2
for key in transaction_data.keys[]:
print[key, '-->', transaction_data[key]]
Output[3]:
transaction_id --> 1000001
source_country --> United Kingdom
target_country --> Italy
send_currency --> GBP
send_amount --> 1000.0
target_currency --> EUR
fx_rate --> 1.1648674
fee_pct --> 0.5
platform --> mobile
4 và
# METHOD 2
for key in transaction_data.keys[]:
print[key, '-->', transaction_data[key]]
Output[3]:
transaction_id --> 1000001
source_country --> United Kingdom
target_country --> Italy
send_currency --> GBP
send_amount --> 1000.0
target_currency --> EUR
fx_rate --> 1.1648674
fee_pct --> 0.5
platform --> mobile
5 vào dữ liệu có sẵn trong từ điển. Làm thế nào bạn sẽ đạt được điều đó?

Có hai phương pháp chính

  • Sử dụng ký hiệu dấu ngoặc vuông
    # METHOD 1 - Unsorted
    for key in transaction_data:
    print[key, ‘:’, transaction_data[key]]
    Output[1]:
    transaction_id : 1000001
    source_country : United Kingdom
    target_country : Italy
    send_currency : GBP
    send_amount : 1000.0
    target_currency : EUR
    fx_rate : 1.1648674
    fee_pct : 0.5
    platform : mobile
    6
# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
2
  • Ngoài ra, bạn có thể sử dụng phương thức
    # METHOD 2
    for key in transaction_data.keys[]:
    print[key, '-->', transaction_data[key]]
    Output[3]:
    transaction_id --> 1000001
    source_country --> United Kingdom
    target_country --> Italy
    send_currency --> GBP
    send_amount --> 1000.0
    target_currency --> EUR
    fx_rate --> 1.1648674
    fee_pct --> 0.5
    platform --> mobile
    7, nhưng cần phải nhập nhiều hơn một chút
# METHOD 1 - Unsorted
for key in transaction_data:
print[key, ‘:’, transaction_data[key]]
Output[1]:
transaction_id : 1000001
source_country : United Kingdom
target_country : Italy
send_currency : GBP
send_amount : 1000.0
target_currency : EUR
fx_rate : 1.1648674
fee_pct : 0.5
platform : mobile
3Kết luận

Trong bài viết này, tôi đã chia sẻ 3 phương pháp để lặp qua các từ điển Python với các vòng lặp 'for' và trích xuất các cặp khóa-giá trị một cách hiệu quả. Tuy nhiên, hãy lưu ý rằng thậm chí còn tồn tại nhiều giải pháp 'pythonic' hơn [ i. e. hiểu từ điển]

Mặc dù là một chủ đề tương đối cơ bản, nhưng “làm thế nào để lặp qua từ điển Python?”, là một trong những câu hỏi được bình chọn nhiều nhất từng được hỏi trên Stack Overflow

Vì lý do này, tôi cũng đã trả lời hai câu hỏi Stack Overflow cực kỳ phổ biến khác về việc kiểm tra tư cách thành viên và thêm các cặp khóa-giá trị mới vào từ điển Python

Tôi hy vọng rằng bạn sẽ sử dụng bài viết này để làm sáng tỏ tất cả những nghi ngờ của bạn về từ điển ở cùng một nơi. Học lập trình rất thú vị và sẽ thay đổi cuộc đời bạn mãi mãi, vì vậy hãy tiếp tục học

Lưu ý dành cho độc giả của tôi

Bài đăng này bao gồm các liên kết liên kết mà tôi có thể kiếm một khoản hoa hồng nhỏ mà không phải trả thêm phí cho bạn, nếu bạn mua hàng

Bạn có thể sử dụng vòng lặp for trong từ điển Python không?

Bạn có thể lặp qua từ điển bằng cách sử dụng vòng lặp for . Khi lặp qua một từ điển, giá trị trả về là các khóa của từ điển, nhưng cũng có các phương thức để trả về các giá trị.

Làm cách nào để lặp lại các khóa và giá trị trong từ điển Python?

Lặp qua cả khóa và giá trị . Phương thức sẽ trả về một bộ chứa các cặp key value ở dạng [key, value]. call items[] . The method will return a tuple containing the key value pairs in the form [key, value] .

Làm cách nào để nhập dữ liệu vào từ điển bằng Python bằng vòng lặp?

Bạn tạo lại từ điển với mỗi vòng lặp. cho x trong phạm vi [3]. pupils_dictionary = {} new_key =input['Nhập khóa mới. '] . Thay vào đó, hãy tạo nó một lần bên ngoài vòng lặp. học sinh_dictionary = {} cho x trong phạm vi [3]. new_key =input['Nhập khóa mới. '].

Cách tốt nhất để lặp qua từ điển là gì?

Cách dễ nhất để duyệt qua một từ điển trong Python là đặt nó trực tiếp vào vòng lặp for .

Chủ Đề