Chuyển đổi các phím dict thành int python

tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm (bao gồm cả hình ảnh) với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB

Chuyển đổi các phím dict thành int python
MartinJaffer-MSFT · 15 tháng 4 năm 2021 lúc 04. 30 giờ chiều

@ SiddheshBhurke-0549 bạn vẫn gặp sự cố phải không?

0 Phiếu bầu 0 ·

MartinJaffer-MSFT đã trả lời 13 tháng 4 năm 21 | SidheshBhurke-0549 đã nhận xét 16/04/21

Trên thực tế điều này cũng hoạt động

 for outk, outv in enc.items():
 ..   for ink, inv in outv.items():
 ..     enc[outk][ink] = round(inv)

vì vậy hãy xem mã gốc của bạn

enc[giá trị][k] = int(vòng(v))

Vấn đề là bạn đã sử dụng

{'C': '15', 'A': '13', 'B': '14'}
13
15
6 trong khi lẽ ra bạn nên sử dụng
{'C': '15', 'A': '13', 'B': '14'}
13
15
7



Nhận xét

Nhận xét · Hiển thị 1

Nhận xét

5. Cần 1600 ký tự còn lại ký tự

  • Hiển thị cho tất cả người dùng
  • Hiển thị với người đăng gốc & Microsoft
  • Người kiểm duyệt có thể xem
  • Có thể xem bởi người kiểm duyệt và người đăng gốc
  • Khả năng hiển thị nâng cao
Chuyển đổi chế độ hiển thị Nhận xét. Hiển thị hiện tại. Hiển thị với tất cả người dùng

tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm (bao gồm cả hình ảnh) với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB

Chuyển đổi các phím dict thành int python
SiddheshBhurke-0549 · 16 tháng 4 năm 2021 lúc 01. 46 giờ chiều

Cảm ơn đã cập nhật Martin

Tôi đã thử điều này vì tôi đang sử dụng python

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)

1 Bình chọn 1 ·

MartinJaffer-MSFT đã trả lời 13 tháng 4 năm 21 | MartinJaffer-MSFT đã nhận xét 13 tháng 4, '21

Xin chào @SidheshBhurke-0549 và chào mừng bạn đến với Microsoft Q&A

Có vẻ như bạn có thêm một vòng lặp trong đó

 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))

Nhận xét

Nhận xét · Hiển thị 1

Nhận xét

5. Cần 1600 ký tự còn lại ký tự

  • Hiển thị cho tất cả người dùng
  • Hiển thị với người đăng gốc & Microsoft
  • Người kiểm duyệt có thể xem
  • Có thể xem bởi người kiểm duyệt và người đăng gốc
  • Khả năng hiển thị nâng cao
Chuyển đổi chế độ hiển thị Nhận xét. Hiển thị hiện tại. Hiển thị với tất cả người dùng

tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm (bao gồm cả hình ảnh) với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB

MartinJaffer-MSFT · 13 tháng 4 năm 2021 lúc 05. 09 giờ tối

Hừm. thực sự có vẻ như chúng ta thực sự giống nhau. Sự khác biệt duy nhất là bạn lặp lại một lớp bổ sung. Hmm, có chuyên gia nào muốn giải thích cho cả hai chúng ta không?

Từ điển trong python là một cấu trúc dữ liệu rất hữu ích và nhiều lần chúng ta thấy các vấn đề liên quan đến việc chuyển đổi một chuỗi thành từ điển. Vì vậy, chúng ta hãy thảo luận làm thế nào chúng ta có thể giải quyết vấn đề này. Phương pháp số 1. Sử dụng eval() Nếu chúng ta nhận được một chuỗi đầu vào hoàn toàn giống với một đối tượng từ điển (nếu chuỗi trông giống từ điển như trong python) thì chúng ta có thể dễ dàng chuyển đổi nó thành từ điển bằng cách sử dụng eval() trong Python.  

Python3




{'C': '15', 'A': '13', 'B': '14'}
13
15
8

{'C': '15', 'A': '13', 'B': '14'}
13
15
9

 

{'C': '15', 'A': '13', 'B': '14'}
13
15
0

{'C': '15', 'A': '13', 'B': '14'}
13
15
1
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
3
{'C': '15', 'A': '13', 'B': '14'}
13
15
0
{'C': '15', 'A': '13', 'B': '14'}
13
15
1
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
3
{'C': '15', 'A': '13', 'B': '14'}
13
15
4
{'C': '15', 'A': '13', 'B': '14'}
13
15
1
{'C': '15', 'A': '13', 'B': '14'}
13
15
6
{'C': '15', 'A': '13', 'B': '14'}
13
15
3
{'C': '15', 'A': '13', 'B': '14'}
13
15
8
{'C': '15', 'A': '13', 'B': '14'}
13
15
1
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
30
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
31

 

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
32

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
33
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
35____136

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
37
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
38
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
33
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
20

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
37
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
38
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
33
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
24
{'C': '15', 'A': '13', 'B': '14'}
13
15
0
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
26

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
37
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
38
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
33
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
24
{'C': '15', 'A': '13', 'B': '14'}
13
15
8
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
26

đầu ra.

{'C': '15', 'A': '13', 'B': '14'}
13
15
5

Phương pháp # 2. Sử dụng các biểu thức trình tạo trong python Nếu chúng ta nhận được một chuỗi đầu vào không hoàn toàn giống với một đối tượng từ điển thì chúng ta có thể sử dụng các biểu thức trình tạo để chuyển đổi nó thành một từ điển.  

Python3




{'C': '15', 'A': '13', 'B': '14'}
13
15
8

{'C': '15', 'A': '13', 'B': '14'}
13
15
9

 

{'C': '15', 'A': '13', 'B': '14'}
13
15
0

{'C': '15', 'A': '13', 'B': '14'}
13
15
1
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
88
{'C': '15', 'A': '13', 'B': '14'}
13
15
89
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
91
{'C': '15', 'A': '13', 'B': '14'}
13
15
89
{'C': '15', 'A': '13', 'B': '14'}
13
15
6
{'C': '15', 'A': '13', 'B': '14'}
13
15
94
{'C': '15', 'A': '13', 'B': '14'}
13
15
89
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
30
{'C': '15', 'A': '13', 'B': '14'}
13
15
97

 

{'C': '15', 'A': '13', 'B': '14'}
13
15
98

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
33
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
01
{'C': '15', 'A': '13', 'B': '14'}
13
15
02

{'C': '15', 'A': '13', 'B': '14'}
13
15
03
{'C': '15', 'A': '13', 'B': '14'}
13
15
04
{'C': '15', 'A': '13', 'B': '14'}
13
15
05
{'C': '15', 'A': '13', 'B': '14'}
13
15
06
{'C': '15', 'A': '13', 'B': '14'}
13
15
07
{'C': '15', 'A': '13', 'B': '14'}
13
15
08
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
20

{'C': '15', 'A': '13', 'B': '14'}
13
15
03
{'C': '15', 'A': '13', 'B': '14'}
13
15
04
{'C': '15', 'A': '13', 'B': '14'}
13
15
12
{'C': '15', 'A': '13', 'B': '14'}
13
15
06
{'C': '15', 'A': '13', 'B': '14'}
13
15
14
{'C': '15', 'A': '13', 'B': '14'}
13
15
15
{'C': '15', 'A': '13', 'B': '14'}
13
15
16

 

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
37
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
38
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
33
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
20

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
37
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
38
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
33
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
24
{'C': '15', 'A': '13', 'B': '14'}
13
15
0
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
26

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
37
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
38
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
33
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
24
{'C': '15', 'A': '13', 'B': '14'}
13
15
8
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
26

đầu ra.

{'C': '15', 'A': '13', 'B': '14'}
13
15

Mã đưa ra ở trên không chuyển đổi số nguyên thành kiểu int, nếu có các khóa số nguyên thì chỉ dòng 8 sẽ hoạt động

Python3




{'C': '15', 'A': '13', 'B': '14'}
13
15
1
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
97
{'C': '15', 'A': '13', 'B': '14'}
13
15
36
{'C': '15', 'A': '13', 'B': '14'}
13
15
89
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
3
{'C': '15', 'A': '13', 'B': '14'}
13
15
00
{'C': '15', 'A': '13', 'B': '14'}
13
15
89
{'C': '15', 'A': '13', 'B': '14'}
13
15
6
{'C': '15', 'A': '13', 'B': '14'}
13
15
3
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
89
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
30
{'C': '15', 'A': '13', 'B': '14'}
13
15
97

 

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
33
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
01
{'C': '15', 'A': '13', 'B': '14'}
13
15
11
{'C': '15', 'A': '13', 'B': '14'}
13
15
12
{'C': '15', 'A': '13', 'B': '14'}
13
15
13

{'C': '15', 'A': '13', 'B': '14'}
13
15
03
{'C': '15', 'A': '13', 'B': '14'}
13
15
04
{'C': '15', 'A': '13', 'B': '14'}
13
15
05
{'C': '15', 'A': '13', 'B': '14'}
13
15
06
{'C': '15', 'A': '13', 'B': '14'}
13
15
07
{'C': '15', 'A': '13', 'B': '14'}
13
15
08
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
20

{'C': '15', 'A': '13', 'B': '14'}
13
15
03
{'C': '15', 'A': '13', 'B': '14'}
13
15
04
{'C': '15', 'A': '13', 'B': '14'}
13
15
12
{'C': '15', 'A': '13', 'B': '14'}
13
15
06
{'C': '15', 'A': '13', 'B': '14'}
13
15
14
{'C': '15', 'A': '13', 'B': '14'}
13
15
15
{'C': '15', 'A': '13', 'B': '14'}
13
15
16

 

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
37
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
38
 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
33
 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
20

đầu ra.

 for key, value in enc.items():
     for k, v in value.items():
         enc[key][k] = np.rint(v).astype(int)
3

Một cách tiếp cận bổ sung có thể được sử dụng để tạo từ điển từ chuỗi là sử dụng mô-đun json. Mô-đun json cho phép bạn phân tích chuỗi JSON và chuyển đổi nó thành từ điển

Đây là một ví dụ về cách bạn có thể sử dụng mô-đun json để tạo từ điển từ một chuỗi

Python3




{'C': '15', 'A': '13', 'B': '14'}
13
15
32
{'C': '15', 'A': '13', 'B': '14'}
13
15
33

 

{'C': '15', 'A': '13', 'B': '14'}
13
15
34

{'C': '15', 'A': '13', 'B': '14'}
13
15
1
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
37

 

{'C': '15', 'A': '13', 'B': '14'}
13
15
38

{'C': '15', 'A': '13', 'B': '14'}
13
15
01
{'C': '15', 'A': '13', 'B': '14'}
13
15
2
{'C': '15', 'A': '13', 'B': '14'}
13
15
41

 

_______137____138____901____345

{'C': '15', 'A': '13', 'B': '14'}
13
15
46

Đầu ra

 for key,value in enc['Category'].items():
    enc['Category'][key] = int(round(value))
2

Mô-đun json là một phần của thư viện chuẩn Python, vì vậy bạn không cần cài đặt thêm bất kỳ mô-đun nào để sử dụng nó

Độ phức tạp về thời gian cho phương pháp này là O(N), trong đó N là độ dài của chuỗi, dưới dạng json. hàm tải cần phân tích cú pháp toàn bộ chuỗi để tạo từ điển. Độ phức tạp của không gian cũng là O(N), vì từ điển kết quả sẽ có cùng kích thước với chuỗi gốc

Khóa từ điển Python có thể là int không?

Thứ hai, khóa từ điển phải thuộc loại không thay đổi. Ví dụ: bạn có thể sử dụng số nguyên, số float, chuỗi hoặc Boolean làm khóa từ điển . Tuy nhiên, cả danh sách và từ điển khác đều không thể đóng vai trò là khóa từ điển vì danh sách và từ điển có thể thay đổi.

Làm cách nào để chuyển đổi các khóa từ điển thành danh sách trong Python?

Phương pháp 1. Nhận các khóa từ điển dưới dạng danh sách sử dụng dict . mệnh lệnh. keys() trong Từ điển Python, trả về một đối tượng dạng xem hiển thị danh sách tất cả các khóa trong từ điển theo thứ tự chèn.

Làm cách nào để chuyển đổi khóa từ điển thành chuỗi trong Python?

Một phương pháp khác để chuyển từ điển thành chuỗi trong Python là sử dụng phương thức dumps() của thư viện JSON . Phương thức dumps() lấy một đối tượng JSON làm tham số đầu vào và trả về một chuỗi JSON. Nhớ. Để gọi phương thức dumps(), bạn cần nhập thư viện JSON (ở đầu mã của bạn).

Làm cách nào để chuyển đổi int thành dict trong Python?

Chúng ta có thể làm điều này. >>> keys = ['one', 'two', 'three', 'four'] >>> values ​​= [1,2,3,4] >>> new_dict =