2016-03-23 12 views

Trả lời

1

Bạn có thể sử dụng một sự hiểu biết danh sách hoặc biểu hiện máy phát điện để lọc:

for key,value in (i for i in columns.items() if not i==('key_x',value_x)): 
    do something 
9

Chỉ cần sử dụng câu lệnh continue, để bỏ qua trước vòng lặp tiếp theo của vòng lặp for:

for key,value in columns.items(): 
    if key == 'key_x': 
     continue 
    # do something 
0

Bạn cũng có thể lặp qua đầu ra của filter tích hợp trong phương pháp (trong đó sản lượng một máy phát điện trong Python3 +), cách này :

>>> for x in filter('key_x'.__ne__, d_data): 
     print(x, d_data[x]) 


key_3 value_3 
key_n value_n 
key_1 value_1 
key_2 value_2 
+0

Và nhận xét của ông Downvoter ở đâu? –

+1

Aye, đó là tôi. 'filter' +' lambda' là unpythonic, slow, và [được khuyến khích một cách rõ ràng bởi Guido] (http://legacy.python.org/doc/essays/ppt/regrets/PythonRegrets.ppt). 'filter ('key_x' .__ ne__, d_data)' là một giải pháp thay thế tương đương, hoặc tốt hơn nhưng chỉ sử dụng tính toàn diện. – wim

+0

@ wim ... yea ... Tôi chỉ nắm bắt những ngày này rằng họ có ý tưởng kết hợp 'bộ lọc',' bản đồ' hoặc bất kỳ thứ gì tương tự với 'lambda' đạt hiệu suất xuống ... cảm ơn bạn đã đề xuất và cập nhật mã như tốt, bây giờ câu hỏi của tôi là, những nơi thích hợp để sử dụng '__ne__' hoặc phương pháp tương tự là gì? –

Các vấn đề liên quan