基于大小写删除列表中的任何短语(Python 3)

时间:2015-09-03 17:46:23

标签: python-3.x

我有一个看起来像这样的pandas数据框

   List
   Justin Bieber
   The hills
   George Clooney
   very good
   is a

有没有一种快速的方法来过滤这个列表,所以只留下两个单词都是大写的双字母组合?根据上面的示例,新列表如下所示:

  List
  Justin Bieber
  George Clooney

2 个答案:

答案 0 :(得分:1)

也许正在使用filter

>>> lst = ["Something", "This no", "This Yes", "not this"]
>>> list(filter(lambda s: all(x[0].isupper() for x in s.split()), lst))
['Something', 'This Yes']

通过列表理解它几乎是一样的:

>>> [s for s in lst if all(x[0].isupper() for x in s.split())]
['Something', 'This Yes']

你可能想设置它匹配的单词数,但你的例子没有 - 所以我也没有。

答案 1 :(得分:0)

一个班轮(但不是最快):

names = [s for s in str_list if len(s.split()) == 2 and all(word[0].isupper() for word in s.split())]