Hướng dẫn creating dictionary in python using for loop - tạo từ điển trong python bằng vòng lặp for

94

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang cố gắng tạo một từ điển bằng cách sử dụng cho các vòng lặp. Đây là mã của tôi:

dicts = {}
keys = range[4]
values = ["Hi", "I", "am", "John"]
for i in keys:
    for x in values:
        dicts[i] = x
print[dicts]

Điều này ra:

{0: 'John', 1: 'John', 2: 'John', 3: 'John'}

Why?

Tôi đã lên kế hoạch làm cho nó đầu ra:

{0: 'Hi', 1: 'I', 2: 'am', 3: 'John'}

Tại sao nó không đầu ra theo cách đó và làm thế nào để chúng ta làm cho nó xuất ra chính xác?

Đã hỏi ngày 16 tháng 5 năm 2015 lúc 21:17May 16, 2015 at 21:17

3

dicts = {}
keys = range[4]
values = ["Hi", "I", "am", "John"]
for i in keys:
        dicts[i] = values[i]
print[dicts]

cách khác

In [7]: dict[list[enumerate[values]]]
Out[7]: {0: 'Hi', 1: 'I', 2: 'am', 3: 'John'}

Đã trả lời ngày 16 tháng 5 năm 2015 lúc 21:19May 16, 2015 at 21:19

2

>>> dict[zip[keys, values]]
{0: 'Hi', 1: 'I', 2: 'am', 3: 'John'}

Đã trả lời ngày 16 tháng 5 năm 2015 lúc 21:20May 16, 2015 at 21:20

4

Sử dụng cấu trúc từ điển với các vòng lặp là vô cùng hiệu quả trong Python. Trong thẻ này, tôi sẽ chỉ cho bạn một số ví dụ về cách sử dụng từ điển trong các vòng lặp.

Ví dụ đầu tiên tôi sẽ trình bày là mở rộng một từ điển thành một danh sách các danh sách. Hãy tưởng tượng rằng bạn có một từ điển trong đó chìa khóa là sản phẩm và giá trị là số lượng sản phẩm trong kho. Dưới đây là một ví dụ về cách tôi muốn thay đổi cấu trúc dữ liệu của mình:

  • Input:

fruits = {'banana':3,'apple':2, 'mango':1, 'kiwi':5}

  • Output:

fruits_list = [
        ['banana', 'banana', 'banana'],
        ['apple', 'apple'],
        ['mango'],
        ['kiwi', 'kiwi', 'kiwi', 'kiwi', 'kiwi']]

Để đạt được điều này, chúng ta có thể bắt đầu với việc viết ra các bước vào một giải pháp.

Chúng ta cần lặp lại tất cả các khóa trái cây và xây dựng một danh sách lặp lại khóa

{0: 'John', 1: 'John', 2: 'John', 3: 'John'}
2 lần.

Tôi sẽ làm điều này bằng cách sử dụng danh sách hiểu.

  • Để lặp lại tất cả các mục Dict, bạn sẽ cần
    {0: 'John', 1: 'John', 2: 'John', 3: 'John'}
    
    3
  • Để xây dựng danh sách lặp lại từng khóa n lần làm:
    {0: 'John', 1: 'John', 2: 'John', 3: 'John'}
    
    4
  • Như các giá trị Dict cho biết số lần lặp lại, làm:
    {0: 'John', 1: 'John', 2: 'John', 3: 'John'}
    
    5

Tôi có thể viết điều này như một vòng lặp và sau đó chuyển đổi nó thành danh sách hiểu biết mà tôi nghĩ là trực quan hơn. Dưới đây là mã là một vòng lặp:

# Initialize the dictionary
fruits = {'banana':3,'apple':2, 'mango':1, 'kiwi':5}

# Create blank list to append to
fruits_list = []

# Create the for loop
for fruit, quantity in fruits.items[]:
    # Append the list to the main list
    fruits_list.append[[fruit]*quantity]

# Print out the final list
print[fruits_list]

Bây giờ chúng ta có thể làm điều tương tự với sự hiểu biết danh sách. Danh sách hiểu là hành động đưa một vòng lặp vào một danh sách. Điều này có vẻ hơi kỳ lạ, nhưng các nhà sản xuất Python nhận ra rằng nó đủ phổ biến để sử dụng một vòng lặp để tạo ra một danh sách mà điều quan trọng là phải tạo một lối tắt.for loop into a list. This may seem a little weird, but the makers of python realized that it was common enough to use a for loop to create a list that it was important to create a shortcut.

Liệt kê danh sách lúc đầu là khó khăn, bởi vì nó cảm thấy không tự nhiên, nhưng bạn càng viết mã trong Python, bạn sẽ càng tìm thấy những lợi ích bổ sung của việc sử dụng danh sách hiểu. Chỉ cần nhớ: mọi thứ bạn làm với danh sách hiểu có thể được thực hiện với một vòng lặp. Nhưng nghịch đảo không đúng.Just remember: Everything you do with list comprehension can be done with a for loop. But the inverse is not true.

Cú pháp của danh sách hiểu

variable = [expression for item in list]

Bạn cũng có thể thêm một câu lệnh có điều kiện vào danh sách hiểu:

{0: 'John', 1: 'John', 2: 'John', 3: 'John'}
0

Vậy làm thế nào điều này áp dụng cho vấn đề trên? Chà, dưới đây tôi chỉ ra cách chúng ta có thể sử dụng định dạng mới này để hỗ trợ chúng ta!

{0: 'John', 1: 'John', 2: 'John', 3: 'John'}
1

Chúng tôi sẽ khám phá thêm danh sách hiểu biết trong tương lai, vì vậy bây giờ chỉ cần đảm bảo rằng bạn hiểu cách chúng tôi đang sử dụng phương pháp

{0: 'John', 1: 'John', 2: 'John', 3: 'John'}
6

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

Bạn có thể lặp qua một từ điển bằng cách sử dụng một vòng lặp. Khi lặp qua 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 pháp để trả về các giá trị.. When looping through a dictionary, the return value are the keys of the dictionary, but there are methods to return the values as well.

Làm thế nào để bạn thêm một từ điển vào một vòng lặp?

Để thêm các cặp giá trị khóa vào từ điển trong một vòng lặp, chúng tôi có thể tạo hai danh sách sẽ lưu trữ các khóa và giá trị của từ điển của chúng tôi.Tiếp theo, giả sử rằng khóa Ith có nghĩa là cho giá trị ith, chúng ta có thể lặp lại hai danh sách lại với nhau và thêm các giá trị vào các khóa tương ứng của chúng bên trong từ điển.create two lists that will store the keys and values of our dictionary. Next, assuming that the ith key is meant for the ith value, we can iterate over the two lists together and add values to their respective keys inside the dictionary.

Làm thế nào để bạn tạo một từ điển trong Python?

Một từ điển trong Python được tạo thành từ các cặp giá trị chính.Trong hai phần theo sau bạn sẽ thấy hai cách tạo từ điển.Cách đầu tiên là bằng cách sử dụng một bộ niềng răng xoăn, {} và cách thứ hai là bằng cách sử dụng hàm dict [] tích hợp.using a set of curly braces, {} , and the second way is by using the built-in dict[] function.

Làm cách nào để tạo nhiều từ điển trong Python?

Trong Python, một từ điển lồng nhau có thể được tạo ra bằng cách đặt các từ điển được phân tách bằng dấu phẩy được đặt trong niềng răng.placing the comma-separated dictionaries enclosed within braces.

Bài Viết Liên Quan

Chủ Đề