Từ điển Python có khóa và giá trị. Nếu chúng ta có hai hoặc nhiều từ điển để hợp nhất một từ điển lồng nhau, thì chúng ta có thể thực hiện các phương pháp dưới đây. Năm nay, các từ điển được đưa ra cùng với các khóa mới sẽ trở thành một khóa trong từ điển lồng nhau
Gán phím
Theo cách tiếp cận này, chúng tôi sẽ tạo một từ điển trống mới. Sau đó, gán các từ điển đã cho cho từng khóa mới. Từ điển kết quả sẽ là một từ điển lồng nhau với các khóa được chỉ định
Ví dụ
dictA = {'Sun': 1, 'Mon': 2} dictB = {'Tue': 3, 'Sun': 5} # Given Dictionaries print["DictA : ",dictA] print["DictB: ",dictB] # Using key access and dict[] res = dict[] res['Netsed_dict_1'] = dictA res['Netsed_dict_2'] = dictB # printing result print["Netsed Dictionary: \n" ,res]
Chạy đoạn mã trên cho chúng ta kết quả sau -
đầu ra
DictA : {'Sun': 1, 'Mon': 2} DictB: {'Tue': 3, 'Sun': 5} Netsed Dictionary: {'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}
sử dụng zip
Chức năng Jeep có thể chuyển đổi các khóa và từ điển thành Tuple. Sau đó, chúng tôi áp dụng chức năng dict để có được kết quả cuối cùng là một từ điển chứa các khóa mới cũng như từ điển đầu vào
Trước hết, cảm ơn bạn đã dán mã của mình và cố gắng định dạng nó. Bạn gần như đã làm đúng, bạn chỉ cần sử dụng 3 dấu gạch ngược [
DictA : {'Sun': 1, 'Mon': 2} DictB: {'Tue': 3, 'Sun': 5} Netsed Dictionary: {'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}1] thay vì dấu nháy đơn [
DictA : {'Sun': 1, 'Mon': 2} DictB: {'Tue': 3, 'Sun': 5} Netsed Dictionary: {'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}2]. Nếu bạn có thể chỉnh sửa bài đăng của mình để nó hiển thị chính xác thì điều đó thật tuyệt, nếu không thì chúng tôi không thể chắc chắn mã của bạn thực sự trông như thế nào và cũng không thể dễ dàng tự sao chép và dán mã đó
Thứ hai, có lẽ bạn nên xem xét việc sử dụng mô-đun
DictA : {'Sun': 1, 'Mon': 2} DictB: {'Tue': 3, 'Sun': 5} Netsed Dictionary: {'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}3. Nó được thiết kế để đọc và ghi dữ liệu như thế này và xử lý hầu hết các phân tích cú pháp cho bạn
https. // tài liệu. con trăn. org/3/library/csv. html
Mặc dù nếu bạn đi theo con đường này, bạn sẽ phải thực hiện thêm một số công việc vì các từ điển và danh sách lồng nhau của bạn sẽ được lưu trữ dưới dạng chuỗi
Bạn đang làm gì với dữ liệu này? . Bạn sẽ xem xét một định dạng tập tin khác?
https. // tài liệu. con trăn. org/3/thư viện/json. html
Ví dụ.
Tệp
DictA : {'Sun': 1, 'Mon': 2} DictB: {'Tue': 3, 'Sun': 5} Netsed Dictionary: {'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}6 của bạn sẽ như thế này.
{
"bulbasaur": {
"fee": 25,
"powers": [
"grass"
],
"quantity": 5
},
"charmander": {
"fee": 100,
"powers": [
"fire"
],
"quantity": 3
},
"gyrados": {
"fee": 1000,
"powers": [
"water",
"flying"
],
"quantity": 1
},
"squirtle": {
"fee": 50,
"powers": [
"water"
],
"quantity": 2
}
}
và bạn sẽ sử dụng mã này để đọc và lưu nó
import json
database_filename = 'pokemons.txt'
with open[database_filename] as file:
pokemon = json.load[file]
def save[]:
with open[database_filename, 'w'] as f:
json.dump[pokemon, f, sort_keys=True, indent=4]
Ngoài các nhận xét ở trên, bạn có thể muốn xem xét thư viện Pandas phổ biến, giúp làm việc với dữ liệu dạng bảng dễ dàng hơn nhiều. Bạn có thể đọc tệp CSV của mình thành Khung dữ liệu Pandas trong một dòng,
DictA : {'Sun': 1, 'Mon': 2} DictB: {'Tue': 3, 'Sun': 5} Netsed Dictionary: {'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}7 và nó sẽ tự động chuyển đổi tất cả các loại dữ liệu cho bạn. Sau đó, bạn có thể xuất nó thành một lệnh Python ở định dạng được chỉ định với
DictA : {'Sun': 1, 'Mon': 2} DictB: {'Tue': 3, 'Sun': 5} Netsed Dictionary: {'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}8, thành tệp JSON với
import json
database_filename = 'pokemons.txt'
with open[database_filename] as file:
pokemon = json.load[file]
def save[]:
with open[database_filename, 'w'] as f:
json.dump[pokemon, f, sort_keys=True, indent=4]
0 hoặc CSV gốc của bạn với import json
database_filename = 'pokemons.txt'
with open[database_filename] as file:
pokemon = json.load[file]
def save[]:
with open[database_filename, 'w'] as f:
json.dump[pokemon, f, sort_keys=True, indent=4]
1. Bạn có thể sắp xếp df của mình bằng import json
database_filename = 'pokemons.txt'
with open[database_filename] as file:
pokemon = json.load[file]
def save[]:
with open[database_filename, 'w'] as f:
json.dump[pokemon, f, sort_keys=True, indent=4]
2Tuy nhiên, có một vấn đề tiềm ẩn với cách tiếp cận này hoặc cách tiếp cận dựa trên
DictA : {'Sun': 1, 'Mon': 2} DictB: {'Tue': 3, 'Sun': 5} Netsed Dictionary: {'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}3 được đề xuất trước đó—bạn có một số lượng trường
import json
database_filename = 'pokemons.txt'
with open[database_filename] as file:
pokemon = json.load[file]
def save[]:
with open[database_filename, 'w'] as f:
json.dump[pokemon, f, sort_keys=True, indent=4]
4 thay đổi, có vẻ như bạn định đọc dưới dạng danh sách lồng nhau. Cung cấp một chút kiến thức về lĩnh vực cụ thể, có vẻ như điều này tương ứng với "Loại" của Pokemon, theo Bulbapedia, một Pokemon chỉ có thể có một hoặc hai loại. Như vậy, cách đơn giản nhất để xử lý việc này là chỉ cần khai báo 2 cột import json
database_filename = 'pokemons.txt'
with open[database_filename] as file:
pokemon = json.load[file]
def save[]:
with open[database_filename, 'w'] as f:
json.dump[pokemon, f, sort_keys=True, indent=4]
5 và import json
database_filename = 'pokemons.txt'
with open[database_filename] as file:
pokemon = json.load[file]
def save[]:
with open[database_filename, 'w'] as f:
json.dump[pokemon, f, sort_keys=True, indent=4]
6, Pandas [hoặc DictA : {'Sun': 1, 'Mon': 2} DictB: {'Tue': 3, 'Sun': 5} Netsed Dictionary: {'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}3] sẽ điền giá trị đầy đủ vào cột thứ 2 nếu không có. Tất nhiên, điều đó không giúp bạn có được một danh sách trong cấu trúc dữ liệu đầu ra của mình, nhưng làm việc với nó đơn giản hơn rất nhiều; . g. đại loại như
import json
database_filename = 'pokemons.txt'
with open[database_filename] as file:
pokemon = json.load[file]
def save[]:
with open[database_filename, 'w'] as f:
json.dump[pokemon, f, sort_keys=True, indent=4]
8