2016-10-08 78 views
0

我有一套如何在Python中打印最小集?

ww = [{27, 29, 6, 71}, {75, 52, 29, 46, 7}, {20, 71}, {59}, {52, 37, 15}] 

,我想打印具有最短的長度,即該元素。在這個例子中{59}。

min(ww) 

只會給我的{27,29,6,71}不是{} 59

是有使用分鐘()來做到這一點的方法嗎?或任何其他智能方法?

+3

設置鍵長度 – Li357

+5

使用'分鐘(WW,鍵= LEN)'。列表按照字典順序排序,因此您需要指定鍵值,請參閱http://stackoverflow.com/questions/34050113/how-does-the-min-max-function-on-a-nested-list-work/34115735# 34115735 –

回答

2

試試這個,

In [3]: min(ww,key=len) 
Out[3]: {59} 

或者

In [4]: sorted(ww,key=len)[0] 
Out[4]: {59} 
+5

爲什麼你會使用O(n log n)方法?即使要獲得k個最短長度的子元素,也有更好的方法。 –