def choice4(filelist):
mymax = max(map(len,filelist))
return [a for a in filelist if len(a)==mymax]
a = ['joe','andy','mark','steve']
a.extend(a)
print choice4(a)
maxlist = []
maxlen = 0
for el in inputlist:
l = len(el)
if l > maxlen:
maxlist = [el]
maxlen = l
elif l == maxlen:
maxlist.append(el)
其中maxlist是根据需要生成和替换的,以便只保存最长的元素:
>>> inputlist = 'And so we give a demo once more'.split()
>>> maxlist = []
>>> maxlen = 0
>>> for el in inputlist:
... l = len(el)
... if l > maxlen:
... maxlist = [el]
... maxlen = l
... elif l == maxlen:
... maxlist.append(el)
...
>>> maxlist
['give', 'demo', 'once', 'more']
试试这个:
您可以使用排序代替:
这需要
O(n log n)
时间进行排序;但它很简单,而且很短,因为最长的元素都在开始时就可以轻松挑选。对于
O(n)
解决方案,请使用循环:其中
maxlist
是根据需要生成和替换的,以便只保存最长的元素:相关问题 更多 >
编程相关推荐