Tôi có bộ dữ liệu như thế này:
{'project-1': [{'id':'1','name':'john'},{'id':'20','name':'steve'}],
'project-2': [{'id':'6','name':'jack'},{'id':'42','name':'anna'}]}
Điều tôi muốn trích xuất là tên của tất cả mọi người:
['john','steve','jack','anna']
Làm thế nào để có được những danh sách này bằng Python?
Đã hỏi ngày 22 tháng 11 năm 2017 lúc 8:31Nov 22, 2017 at 8:31
2
my_dict = {
'project-1': [{'id':'1','name':'john'},{'id':'20','name':'steve'}],
'project-2': [{'id':'6','name':'jack'},{'id':'42','name':'anna'}]
}
Bạn có thể sử dụng danh sách hiểu biết, nó nhận được trường
['john','steve','jack','anna']
2 từ mỗi từ điển có trong các nhóm phụ [nghĩa là trong các giá trị của từ điển gốc].>>> [d.get['name'] for sublists in my_dict.values[] for d in sublists]
['john', 'steve', 'jack', 'anna']
Đã trả lời ngày 22 tháng 11 năm 2017 lúc 8:36Nov 22, 2017 at 8:36
AlexanderalexanderAlexander
Huy hiệu vàng 100K2828 gold badges190 silver badges186 bronze badges
0
Lặp đi lặp lại trên Dict, sau đó qua các giá trị của Dict hiện tại:
for d_ in d.values[]:
for item in d_:
print item['name']
Hoặc trong sự hiểu biết
names = [item['name'] for d_ in d.values[] for item in d_]
print names
['john', 'steve', 'jack', 'anna']
Đã trả lời ngày 22 tháng 11 năm 2017 lúc 8:37Nov 22, 2017 at 8:37
Chen A.CHEN A.Chen A.
9.1193 huy hiệu vàng37 Huy hiệu bạc53 Huy hiệu đồng3 gold badges37 silver badges53 bronze badges
Điều này nên làm điều đó.
d = {'project-1': [{'id':'1','name':'john'},{'id':'20','name':'steve'}],
'project-2': [{'id':'6','name':'jack'},{'id':'42','name':'anna'}]}
result = list[]
for key in d:
for x in d[key]:
result.append[x['name']]
Đã trả lời ngày 22 tháng 11 năm 2017 lúc 8:39Nov 22, 2017 at 8:39
Nhiều giải pháp thử cùng một cách tiếp cận cũ ở đây bằng cách sử dụng
['john','steve','jack','anna']
3:Đây là cách tiếp cận khác nhau:
Một giải pháp dòng mà không có bất kỳ vòng lặp:
Bạn có thể sử dụng chức năng Lambda với MAP:
data={'project-1': [{'id':'1','name':'john'},{'id':'20','name':'steve'}],
'project-2': [{'id':'6','name':'jack'},{'id':'42','name':'anna'}]}
print[list[map[lambda x:list[map[lambda y:y['name'],x]],data.values[]]]]
output:
[['john', 'steve'], ['jack', 'anna']]
Đã trả lời ngày 22 tháng 11 năm 2017 lúc 9:15Nov 22, 2017 at 9:15
Aaditya uraaaditya uraAaditya Ura
11.3k7 Huy hiệu vàng44 Huy hiệu bạc77 Huy hiệu đồng7 gold badges44 silver badges77 bronze badges
name_id = {'project-1': [{'id':'1','name':'john'},{'id':'20','name':'steve'}], 'project-2': [{'id':'6','name':'jack'},{'id':'42','name':'anna'}]}
name_id['project-1'][0]['name'] = 'john'
name_id['project-1'][1]['name'] = 'steve'
name_id['project-2'][0]['name'] = 'jack'
name_id['project-2'][1]['name'] = 'anna'
['john','steve','jack','anna']
4 nhận được giá trị tương ứng với khóa ['john','steve','jack','anna']
5 trong từ điển ['john','steve','jack','anna']
6. ['john','steve','jack','anna']
7 là chỉ số danh sách cho phần tử đầu tiên trong giá trị từ điển. ['john','steve','jack','anna']
8 cũng là một chìa khóa, nhưng của từ điển trong phần tử đầu tiên của danh sách. Nó cung cấp cho bạn giá trị cuối cùng mà bạn muốn.Đã trả lời ngày 22 tháng 11 năm 2017 lúc 8:40Nov 22, 2017 at 8:40
PollpennpollpennPollPenn
7031 Huy hiệu vàng7 Huy hiệu bạc16 Huy hiệu đồng1 gold badge7 silver badges16 bronze badges
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận
Chúng tôi có rất nhiều biến thể và ứng dụng của các thùng chứa từ điển trong Python và đôi khi, chúng tôi muốn thực hiện một bộ lọc các phím trong từ điển, i.e chỉ trích xuất các khóa có trong thùng chứa cụ thể. Hãy để thảo luận về những cách nhất định trong đó điều này có thể được thực hiện. & NBSP;
Python3
Phương pháp 1: Trích xuất các khóa cụ thể từ từ điển bằng cách hiểu từ điển + các mục []
>>> [d.get['name'] for sublists in my_dict.values[] for d in sublists]
['john', 'steve', 'jack', 'anna']
8>>> [d.get['name'] for sublists in my_dict.values[] for d in sublists]
['john', 'steve', 'jack', 'anna']
9for d_ in d.values[]:
for item in d_:
print item['name']
0 for d_ in d.values[]:
for item in d_:
print item['name']
1 for d_ in d.values[]:
for item in d_:
print item['name']
2for d_ in d.values[]:
for item in d_:
print item['name']
3Vấn đề này có thể được thực hiện bằng cách tái tạo bằng cách sử dụng các khóa được trích xuất thông qua hàm các mục muốn được lọc và hàm từ điển làm cho từ điển mong muốn.
names = [item['name'] for d_ in d.values[] for item in d_]
print names
['john', 'steve', 'jack', 'anna']
1names = [item['name'] for d_ in d.values[] for item in d_]
print names
['john', 'steve', 'jack', 'anna']
2>>> [d.get['name'] for sublists in my_dict.values[] for d in sublists]
['john', 'steve', 'jack', 'anna']
0my_dict = {
'project-1': [{'id':'1','name':'john'},{'id':'20','name':'steve'}],
'project-2': [{'id':'6','name':'jack'},{'id':'42','name':'anna'}]
}
5my_dict = {
'project-1': [{'id':'1','name':'john'},{'id':'20','name':'steve'}],
'project-2': [{'id':'6','name':'jack'},{'id':'42','name':'anna'}]
}
2names = [item['name'] for d_ in d.values[] for item in d_]
print names
['john', 'steve', 'jack', 'anna']
6>>> [d.get['name'] for sublists in my_dict.values[] for d in sublists]
['john', 'steve', 'jack', 'anna']
8>>> [d.get['name'] for sublists in my_dict.values[] for d in sublists]
['john', 'steve', 'jack', 'anna']
9names = [item['name'] for d_ in d.values[] for item in d_]
print names
['john', 'steve', 'jack', 'anna']
9 for d_ in d.values[]:
for item in d_:
print item['name']
1 for d_ in d.values[]:
for item in d_:
print item['name']
2d = {'project-1': [{'id':'1','name':'john'},{'id':'20','name':'steve'}],
'project-2': [{'id':'6','name':'jack'},{'id':'42','name':'anna'}]}
result = list[]
for key in d:
for x in d[key]:
result.append[x['name']]
2Đầu ra: & nbsp;
['john','steve','jack','anna']
0Làm cách nào để nhận được giá trị của một khóa cụ thể trong từ điển?
Từ điển Python Get [] Phương thức Cú pháp:.
Python3
Phương pháp 1: Trích xuất các khóa cụ thể từ từ điển bằng cách hiểu từ điển + các mục []
>>> [d.get['name'] for sublists in my_dict.values[] for d in sublists]
['john', 'steve', 'jack', 'anna']
8>>> [d.get['name'] for sublists in my_dict.values[] for d in sublists]
['john', 'steve', 'jack', 'anna']
9for d_ in d.values[]:
for item in d_:
print item['name']
0 for d_ in d.values[]:
for item in d_:
print item['name']
1 for d_ in d.values[]:
for item in d_:
print item['name']
2for d_ in d.values[]:
for item in d_:
print item['name']
3for d_ in d.values[]:
for item in d_:
print item['name']
4___['john','steve','jack','anna']
00['john','steve','jack','anna']
01 name_id = {'project-1': [{'id':'1','name':'john'},{'id':'20','name':'steve'}], 'project-2': [{'id':'6','name':'jack'},{'id':'42','name':'anna'}]}
name_id['project-1'][0]['name'] = 'john'
name_id['project-1'][1]['name'] = 'steve'
name_id['project-2'][0]['name'] = 'jack'
name_id['project-2'][1]['name'] = 'anna'
3for d_ in d.values[]:
for item in d_:
print item['name']
9 ['john','steve','jack','anna']
04>>> [d.get['name'] for sublists in my_dict.values[] for d in sublists]
['john', 'steve', 'jack', 'anna']
8>>> [d.get['name'] for sublists in my_dict.values[] for d in sublists]
['john', 'steve', 'jack', 'anna']
9names = [item['name'] for d_ in d.values[] for item in d_]
print names
['john', 'steve', 'jack', 'anna']
9 for d_ in d.values[]:
for item in d_:
print item['name']
1 for d_ in d.values[]:
for item in d_:
print item['name']
2d = {'project-1': [{'id':'1','name':'john'},{'id':'20','name':'steve'}],
'project-2': [{'id':'6','name':'jack'},{'id':'42','name':'anna'}]}
result = list[]
for key in d:
for x in d[key]:
result.append[x['name']]
2Đầu ra: & nbsp;
['john','steve','jack','anna']
0