如何返回给定长度的所有列表元素?

问题描述 投票:0回答:6

我正在尝试返回具有特定长度的单词。

这是我到目前为止的代码。

words
是一个列表,
size
是一个正整数。

def by_size(words, size)
    for word in words:
        if len(word) == size:

我不知道如何继续。

by_size(['a', 'bb', 'ccc', 'dd'], 2)
应返回
['bb', 'dd']
。任何建议都会有很大帮助。

python string list string-length
6个回答
24
投票

我会使用列表理解:

def by_size(words, size):
    return [word for word in words if len(word) == size]

7
投票
return filter(lambda x: len(x)==size, words)

有关该函数的更多信息,请参阅filter()


4
投票

你的意思是这个吗:

In [1]: words = ['a', 'bb', 'ccc', 'dd']

In [2]: result = [item for item in words if len(item)==2]

In [3]: result
Out[3]: ['bb', 'dd']

3
投票
def by_size(words,size):
    result = []
    for word in words:
        if len(word)==size:
            result.append(word)
    return result

现在调用如下函数

desired_result = by_size(['a','bb','ccc','dd'],2)

其中

desired_result
将是
['bb', 'dd']


0
投票

假设您想稍后使用它们,那么将它们作为列表返回是一个好主意。或者只是将它们打印到终端。这实际上取决于您的目标。您可以直接转到 list (或任何变量名称)。在 if 语句中附加即可执行此操作。


0
投票
big_watchlist = ['WIPRO', 'ICICIBANK', 'AXISBANK', 'SBIN', 'HDFCBANK', 'LT', 'GAIL', 'SHREECEM', 'ONGC', 'HEROMOTOCO', 'COALINDIA', 'INFY', 'BPCL', 'IOC', 'INDUSINDBK','HCLTECH','HDFC', 'BAJAJFINSV', 'NTPC', 'ITC', 'EICHERMOT', 'KOTAKBANK', 'BHARTIARTL','TITAN', 'RELIANCE', 'BAJFINANCE', 'POWERGRID', 'M&M', 'MARUTI', 'BAJAJ-AUTO', 'JSWSTEEL','TECHM', 'TCS', 'TATASTEEL', 'DRREDDY', 'ADANIPORTS', 'HINDUNILVR', 'CIPLA', 'ULTRACEMCO','DIVISLAB', 'BRITANNIA', 'HDFCLIFE', 'TATAMOTORS', 'NESTLEIND', 'ASIANPAINT', 'SBILIFE','SUNPHARMA', 'UPL', 'HINDALCO', 'GRASIM']

仅打印长度3

© www.soinside.com 2019 - 2024. All rights reserved.