Cách chuyển đổi danh sách các bộ dữ liệu thành từ điển python

Trong bài viết này, chúng ta sẽ xem xét các cách khác nhau để chuyển đổi tất cả các cặp khóa-giá trị trong từ điển thành danh sách các bộ.

Mục lục

Chuyển đổi tất cả các cặp từ điển thành danh sách các bộ bằng cách sử dụng items()

Trong Python, lớp từ điển cung cấp một hàm items(), hàm này trả về một chuỗi có thể lặp lại (dict_items) của tất cả các cặp khóa-giá trị trong từ điển. Chuỗi retuned này là chế độ xem các cặp khóa-giá trị thực tế trong từ điển. Chúng ta có thể sử dụng chuyển chuỗi lặp này cho hàm list() để lấy danh sách các bộ dữ liệu. Ví dụ,

# Dictionary of string and int
word_freq = {
    "Hello": 56,
    "at": 23,
    "test": 43,
    "this": 78,
    "why": 89,
    "Hi": 51,
    "How": 79
}

# Convert all key-value pairs of dict to list of tuples
list_of_tuples = list(word_freq.items())

print(list_of_tuples)

Sản lượng

[('Hello', 56),
 ('at', 23),
 ('test', 43),
 ('this', 78),
 ('why', 89),
 ('Hi', 51),
 ('How', 79)]

Chúng tôi chuyển đổi tất cả các cặp khóa-giá trị của từ điển thành danh sách các bộ dữ liệu

Sử dụng zip() để chuyển đổi tất cả các cặp từ điển thành danh sách các bộ dữ liệu

Trong Python, hàm zip() chấp nhận nhiều luồng có thể lặp lại làm đối số và trả về một luồng kết hợp. trong phần tử chuỗi được trả về cùng với vị trí là một bộ chứa các phần tử có vị trí từ các chuỗi được truyền vào

trong từ điển,

  • ra lệnh. Chìa khóa(). trả về một chuỗi có thể lặp lại của tất cả các khóa trong từ điển
  • ra lệnh. giá trị(). trả về một chuỗi có thể lặp lại của tất cả các giá trị trong từ điển

Sau đó, chúng ta có thể chuyển hai chuỗi này (khóa và giá trị) cho hàm zip() và nó sẽ tạo một danh sách các bộ dữ liệu, trong đó bộ dữ liệu có trong danh sách sẽ chứa khóa có giá trị từ từ điển. Ví dụ,

# Dictionary of string and int
word_freq = {
    "Hello": 56,
    "at": 23,
    "test": 43,
    "this": 78,
    "why": 89,
    "Hi": 51,
    "How": 79
}

# Convert all key-value pairs of dict to list of tuples
list_of_tuples = list(zip(word_freq.keys(), word_freq.values()))

print(list_of_tuples)

Sản lượng

[('Hello', 56),
 ('at', 23),
 ('test', 43),
 ('this', 78),
 ('why', 89),
 ('Hi', 51),
 ('How', 79)]

Chúng tôi chuyển đổi tất cả các cặp khóa-giá trị của từ điển thành danh sách các bộ dữ liệu

Sử dụng khả năng hiểu danh sách để chuyển đổi tất cả các cặp từ điển thành danh sách các bộ

ra lệnh. items() trả về một chuỗi có thể lặp lại của tất cả các cặp khóa-giá trị trong từ điển. Chúng ta có thể lặp lại trình tự này bằng cách sử dụng khả năng hiểu danh sách và tạo danh sách các bộ dữ liệu. Trong danh sách các bộ này, bộ with chứa cặp từ điển with value-key. Ví dụ,

# Dictionary of string and int
word_freq = {
    "Hello": 56,
    "at": 23,
    "test": 43,
    "this": 78,
    "why": 89,
    "Hi": 51,
    "How": 79
}

# Convert all key-value pairs of dict to list of tuples
list_of_tuples = [  (key, value)
                    for key, value in word_freq.items()]

print(list_of_tuples)

Sản lượng

[('Hello', 56),
 ('at', 23),
 ('test', 43),
 ('this', 78),
 ('why', 89),
 ('Hi', 51),
 ('How', 79)]

Chúng tôi chuyển đổi tất cả các cặp khóa-giá trị của từ điển thành danh sách các bộ dữ liệu

Sử dụng vòng lặp for để chuyển đổi tất cả các cặp từ điển thành danh sách các bộ

Chúng ta có thể tạo một danh sách các bộ dữ liệu trống và sau đó lặp lại tất cả các cặp khóa trong từ điển bằng cách sử dụng vòng lặp for và thêm từng cặp khóa-giá trị vào danh sách. Ví dụ,

# Dictionary of string and int
word_freq = {
    "Hello": 56,
    "at": 23,
    "test": 43,
    "this": 78,
    "why": 89,
    "Hi": 51,
    "How": 79
}

# Create empty list
list_of_tuples = []

# Add all key-value pairs of dict to list of tuples
for key in word_freq:
   list_of_tuples.append((key, word_freq[key]))

print(list_of_tuples)

Sản lượng

[('Hello', 56),
 ('at', 23),
 ('test', 43),
 ('this', 78),
 ('why', 89),
 ('Hi', 51),
 ('How', 79)]

Chúng tôi chuyển đổi tất cả các cặp khóa-giá trị của từ điển thành danh sách các bộ dữ liệu

Chuyển đổi các cặp dict đã chọn thành danh sách các bộ dữ liệu trong Python

Trong tất cả các ví dụ trên, chúng tôi chuyển đổi tất cả các cặp khóa-giá trị trong từ điển thành danh sách các bộ. Nhưng nếu chúng ta chỉ muốn chọn một vài cặp từ từ điển dựa trên một điều kiện và chuyển đổi chúng thành một danh sách các bộ thì sao?

Ví dụ: chọn các cặp khóa-giá trị từ từ điển có giá trị lớn hơn 50 và chuyển đổi chúng thành danh sách,

Trong bài viết này, chúng ta sẽ xem xét các cách khác nhau để chuyển đổi một hoặc nhiều danh sách thành từ điển trong Python.

Các chuyển đổi sau từ danh sách sang từ điển sẽ được đề cập ở đây,

  • Chuyển đổi danh sách thành từ điển có cùng giá trị
  • Chuyển đổi các mục danh sách thành các khóa trong từ điển với giá trị liệt kê
  • Chuyển đổi hai danh sách thành từ điển
  • Chuyển đổi danh sách các bộ thành từ điển

Chuyển đổi danh sách thành từ điển có cùng giá trị

Giả sử chúng ta có một danh sách các chuỗi, tức là

________số 8

Bây giờ chúng tôi muốn tạo một từ điển với tất cả các thành phần của danh sách này làm khóa. Đối với mỗi khóa, giá trị sẽ giống nhau, tức là 5. Hãy xem làm thế nào để làm điều đó, đó là

Sử dụng từ điển hiểu

'''
Converting a list to dictionary with list elements as keys in dictionary
All keys will have same value
''' 
dictOfWords = { i : 5 for i in listOfStr }

Nội dung của từ điển sẽ là,

[('Hello', 56),
 ('at', 23),
 ('test', 43),
 ('this', 78),
 ('why', 89),
 ('Hi', 51),
 ('How', 79)]
0

sử dụng chính tả. fromKeys()

________mười một

ra lệnh. fromKeys() chấp nhận một danh sách và một giá trị mặc định. Trả về một từ điển với các mục danh sách là khóa. Tất cả các mục từ điển sẽ có cùng giá trị như được chuyển vào fromkeys()

Nếu không có giá trị mặc định nào được chuyển vào fromKeys(), giá trị mặc định cho các khóa trong từ điển sẽ là Không có

Chuyển đổi các mục danh sách thành các khóa trong từ điển với giá trị liệt kê

Giả sử chúng ta có một danh sách các chuỗi, tức là

________số 8

Hãy tạo một từ điển từ danh sách này với các mục danh sách là khóa và giá trị là số nguyên từ 0 đến n-1 (n là kích thước của danh sách), tức là

[('Hello', 56),
 ('at', 23),
 ('test', 43),
 ('this', 78),
 ('why', 89),
 ('Hi', 51),
 ('How', 79)]
3

Nội dung của từ điển sẽ là,

[('Hello', 56),
 ('at', 23),
 ('test', 43),
 ('this', 78),
 ('why', 89),
 ('Hi', 51),
 ('How', 79)]
4

Chuyển đổi hai danh sách thành một từ điển

Giả sử chúng ta có hai danh sách, tức là

________mười lăm

Hãy tạo một từ điển với các phần tử của listOfStr làm khóa và các phần tử của listOfInt làm giá trị bằng cách sử dụng zip() i.e.

[('Hello', 56),
 ('at', 23),
 ('test', 43),
 ('this', 78),
 ('why', 89),
 ('Hi', 51),
 ('How', 79)]
6

zip() chấp nhận nhiều đối tượng có thể lặp lại và trả về danh sách các bộ dữ liệu. Mỗi mục trong bộ dữ liệu chứa một phần tử của từng đối tượng có thể lặp lại.
Chúng ta đã chuyển hai danh sách đối tượng vào zip(), vì vậy nó sẽ trả về một danh sách các bộ, trong đó mỗi bộ chứa một mục nhập từ cả hai danh sách. Sau đó, chúng tôi tạo một đối tượng từ điển từ danh sách các bộ dữ liệu này.

Nội dung của từ điển là,

[('Hello', 56),
 ('at', 23),
 ('test', 43),
 ('this', 78),
 ('why', 89),
 ('Hi', 51),
 ('How', 79)]
7
  • Nếu độ dài của danh sách khóa nhỏ hơn danh sách giá trị, các phần tử còn lại trong danh sách giá trị sẽ bị bỏ qua

Chuyển đổi danh sách các bộ thành từ điển

Giả sử chúng ta có một danh sách các bộ với hai cột trong mỗi mục nhập, tức là

'''
Converting a list to dictionary with list elements as keys in dictionary
All keys will have same value
''' 
dictOfWords = { i : 5 for i in listOfStr }
0

Chúng ta có thể chuyển trực tiếp danh sách các bộ dữ liệu này tới hàm tạo từ điển, tức là

'''
Converting a list to dictionary with list elements as keys in dictionary
All keys will have same value
''' 
dictOfWords = { i : 5 for i in listOfStr }
1

Các mục trong cột đầu tiên sẽ trở thành khóa và các mục trong cột thứ hai sẽ là các giá trị trong từ điển mới. Nội dung của từ điển sẽ là,

Làm cách nào để chuyển đổi danh sách các bộ dữ liệu thành từ điển Python?

Danh sách các bộ – Từ điển .
Khởi tạo danh sách các bộ với dữ liệu giả như đã chỉ ra trong các ví dụ trước (đảm bảo rằng mỗi bộ trong danh sách có chính xác hai phần tử)
Truyền danh sách các bộ dữ liệu cho phương thức dict và lưu kết quả vào một biến mới

Làm thế nào để tạo một từ điển từ một danh sách?

Cách đơn giản và tinh tế nhất để tạo từ điển từ danh sách khóa và giá trị là sử dụng hàm zip() với trình tạo từ điển .