如果字符串列表的长度低于Python 2.7中具有最大长度的字符串的长度,如何从字符串列表中删除字符串?

luc*_*egh 1 python list string-length

如果字符串列表的长度低于Python 2.7中具有最大长度的字符串的长度,如何从字符串列表中删除字符串?

基本上,如果我有一个列表,如:

test = ['cat', 'dog', 'house', 'a', 'range', 'abc']
max_only(test)
Run Code Online (Sandbox Code Playgroud)

输出应该是:

['house', 'range']
Run Code Online (Sandbox Code Playgroud)

'cat'的长度是3,'dog'是3,'house'是5,'a'是1,'range'是5,'abc'是3.长度最长的字符串是'house'和'范围',所以他们回来了.

我尝试过类似的东西,当然,它不起作用:)

def max_only(lst):
    ans_lst = []
    for i in lst:
        ans_lst.append(len(i))   
        for k in range(len(lst)):
            if len(i) < max(ans_lst):
                lst.remove(lst[ans_lst.index(max(ans_lst))])
    return lst
Run Code Online (Sandbox Code Playgroud)

你可以帮帮我吗?

谢谢.

编辑:min length元素的相同之处是什么?

Ash*_*ary 6

使用列表理解和max:

>>> test = ['cat', 'dog', 'house', 'a', 'range', 'abc']
>>> max_ = max(len(x) for x in test)    #Find the length of longest string.
>>> [x for x in test if len(x) == max_] #Filter out all strings that are not equal to max_
['house', 'range']
Run Code Online (Sandbox Code Playgroud)