我正在开发一个函数,该函数可以计算列表中恰好有五个字母的单词数(包括不能的收缩)。
我在互联网上搜索了类似的问题,但空手而归。
def word_count(wlist):
""" This function counts the number of words (including contractions like couldn't) in a list w/ exactly 5
letters."""
w = 0
for word in x:
w += 1 if len(word) == 5 else 0
return w
x = ["adsfe", "as", "jkiejjl", "jsengd'e", "jjies"]
print(word_count(x))
我希望此函数计算带有五个字母的列表中单词的数量(包括无法收缩的单词)。感谢您提供任何反馈意见。
答案 0 :(得分:1)
>>> def word5(wlist):
... return len([word for word in wlist if len(word)==5])
...
>>> word5(["adsfe", "as", "jkiejjl", "jseke", "jjies"])
3
>>>
答案 1 :(得分:0)
使用过滤器的另一种方法:
wordlist = ["adsfe", "as", "jkiejjl", "jseke", "jjies"]
len(list(filter(lambda x: len(x)==5, wordlist)))
答案 2 :(得分:0)
提供的答案不涉及列表理解,以防可能更易于理解。
def word5(wlist):
cnt=0
for word in wordList:
cnt += 1 if len(word) == 5 else 0
return cnt
答案 3 :(得分:0)
您可以这样做:
w5 = list(map(len,wordlist)).count(5)
答案 4 :(得分:0)
具有较小内存占用空间的紧凑型替代方案:
rfe = RFE(log_reg,n_features)
rfe.fit_transform(X_train,y_train)
X_test = rfe.transform(X_test)
predictions = rfe.predict(X_test)
这也可以,但速度要慢2.5倍:
def word5(wlist, n=5):
return sum((1 for word in wlist if len(word) == n))