- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个字典如下:
mydict = {'a' : 'apple',
'b' : 'bobb',
'c' : {
'd' : 'dog'
},
'e' : 'dog'
}
假设我要查找值为'dog
'的所有键,在嵌套的情况下,键之间应该用点分隔。
所以输出应该是一个列表['e', 'c.d']
现在,如果我在 python 3 中编写以下代码,它只会输出“Và
”.
print(list(mydict.keys())[list(mydict.values()).index('dog')])
如何获取嵌套键?
câu trả lời hay nhất
您可以使用如下递归函数:
def find_key(mydict, pre=tuple()):
for key, value in mydict.items():
if isinstance(value, dict):
yield from find_key(value, pre=pre+(key,))
elif value == 'dog':
if pre:
yield '.'.join(pre + (key,))
khác:
yield key
Bài kiểm tra:
In [23]: list(find_key(mydict))
Out[23]: ['e', 'c.d']
In [26]: mydict = {'a' : 'apple',
'b' : 'bobb',
'c' : {
'd' : 'dog'
},
'e' : 'dog',
'k':{'f':{'c':{'x':'dog'}}}}
In [27]:
In [27]: list(find_key(mydict))
Out[27]: ['k.f.c.x', 'e', 'c.d']
关于python:找到所有具有值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48276165/
Câu hỏi của tôi: Rất cụ thể. Tôi đang cố gắng tìm ra cách đơn giản nhất để phân tích văn bản sau: ^^domain=domain_value^version=version_value^account_type=account_ty
Được rồi, đây là vấn đề nan giải của tôi: Tôi đang phát triển bot Câu hỏi thường gặp cho khối con Reddit. Tôi đang gặp rắc rối với logic bool và cần một con mắt có kinh nghiệm hơn (đây là cuộc phiêu lưu đầu tiên của tôi với Python). Bây giờ, đã đến lúc
Đầu tiên nó lặp qua tất cả các giá trị y và sau đó là tất cả các giá trị x. Tôi cần X và y thay đổi cùng một lúc. Với x = 3 To lr + 1 For y = 2 To lr Anyl.Cells(x, 1)
Giả sử tôi có một bảng Excel có 2 cột: ngày tháng trong các ô A1 đến A10 và các giá trị trong các ô B1 đến B10. Tôi muốn tổng hợp tất cả các giá trị cho các ngày trong tháng Năm. Tôi có 3 khả năng: {=SUM((MONTH(A1:A10)=
Làm cách nào để chuyển đổi điểm Z từ phân phối Z (phân phối chuẩn chuẩn, phân phối Gaussian) sang giá trị p?
Tôi đang viết lại một số mã Javascript để hoạt động trong Excel VBA. Kể từ khi tìm kiếm trên trang này, tôi đã dịch được gần như toàn bộ mã Javascript! Tuy nhiên, có một số mã mà tôi không thể hiểu chính xác nó đang làm gì. Đây là một
Tôi đã gặp một tình huống trong đó ngày có dấu thời gian chứa định dạng ngày. Sau đó, tôi muốn xây dựng một biểu đồ hiển thị số lượng mục "được nhấp" "mỗi ngày", // khai báo mảng $array1 = array("Date" => 0);
Tôi mới làm quen với scala! Câu hỏi của tôi là, có lớp trường hợp nào chứa thành viên myItem:Option[String] không và khi tôi xây dựng lớp, tôi cần bọc nội dung chuỗi trong: Option("some string") hoặc So
Tôi đang tạo một hệ thống đăng nhập bằng PHP. Tôi cần người dùng đăng nhập bằng tên người dùng hoặc email hoặc số điện thoại của mình và sau đó sử dụng mật khẩu. Bởi vì tôi biết trong Java chúng ta sẽ có một cái gì đó như email==user^ username == user
Tôi đang sử dụng sqlite trong dự án C++ nhưng tôi gặp sự cố khi sử dụng WHERE trên một cột có giá trị văn bản. Tôi đã tạo cơ sở dữ liệu sqlite: CREATE TABLE User( id INTEGER).
Khi hàm tạo rõ ràng, nó không được sử dụng cho các chuyển đổi tiềm ẩn. Trong đoạn mã đã cho, hàm tạo được đánh dấu là rõ ràng. Vậy thì tại sao trong trường hợp foo obj1(10.25); nó hoạt động nhưng trong trường hợp foo obj2=10.25;
Tôi biết đây là một câu hỏi chủ quan, vì vậy tôi xin lỗi nếu cần phải đóng nó lại, nhưng tôi cảm thấy nó xuất hiện khá thường xuyên và khiến tôi tự hỏi liệu có ai ưa thích hình thức này hơn hình thức khác hay không. Rõ ràng câu trả lời hay nhất là "cấu trúc lại mã để bạn không cần kiểm tra lỗi", nhưng đôi khi không có.
Sự khác biệt giữa hai bộ chọn jQuery này là gì? Đây là định nghĩa từ w3schools.com: [attribute~=value] Bộ chọn chọn một thuộc tính cụ thể có giá trị chứa một chuỗi cụ thể. [thuộc tính*=
Tại sao chúng ta lại cần Bộ chọn CSS [attribute|=value] khi Bộ chọn CSS3 [attribute*=value] về cơ bản thực hiện điều tương tự và khả năng tương thích của trình duyệt gần như tương tự? tồn tại
Tôi đang giải quyết vấn đề về biểu thức chính quy. Tôi đã có một biểu thức chính quy như thế này [0-9]*([.][0-9]{2}). Đây là xác nhận định dạng amont. Bây giờ, với xác thực này, tôi muốn bao gồm số tiền 0 không được cung cấp. Ví dụ 10 là hợp lệ, nhưng
Tôi đang nghiên cứu các câu hỏi mẫu cho kỳ thi Khoa học Máy tính A và không hiểu tại sao câu trả lời đúng cho câu hỏi sau lại đúng. Hãy xem xét các phương pháp sau đây. bí ẩn void tĩnh công khai (Danh sách nums) { for (
Được rồi, tôi đang viết một chương trình Perl có hàm băm của một giá trị mà tôi thu thập (hoàn toàn trong một chương trình hoàn toàn riêng biệt) và đưa nó vào tập lệnh Perl này. Hàm băm này là hàm băm của (chuỗi,chuỗi). Tôi muốn sử dụng 3 cách để
Tôi có dữ liệu bảng như sau, từ các bảng khác nhau. Tôi chỉ muốn nhận giá trị tối đa từ cột thứ tư nếu cột thứ ba có giá trị "Nợ" và cột đầu tiên (ngày) có giá trị tối đa. Giá trị cuối cùng dựa trên MAX(DATE) chứ không phải MAX(PRICE). Vì vậy, bằng ngôn ngữ đơn giản
Tôi gặp một tình huống lạ là chỉ lưu trạng thái lỗi vào cơ sở dữ liệu. Truy vấn của tôi vẫn thực thi sai khi "trạng thái" phải đúng. Tôi có chức năng công khai của Bộ điều khiển Change_a có chức năng này
Tôi có một bảng giao dịch (được đơn giản hóa cho các cột bắt buộc): id client_id value 1 1 200 2 2 150 3 1
Tôi là một lập trình viên xuất sắc, rất giỏi!