获取以某些字母开头的名称列表

时间:2012-04-13 02:04:06

标签: python string list function

我需要实现一个函数,它将一个名称(字符串)列表作为参数,另一个参数作为一个字符列表。该函数应打印出第一个列表中以第二个列表中的字母开头的名称。如果列表为空,则该函数不会打印anythig。

这里是函数调用的样子及其输出

>>> selectSome(["Emma", "Santana", "Cam", "Trevor", "Olivia", "Arthur"], ['A', 'B', 'C', 'D', 'E', 'F'])
Emma
Cam
Arthur
>>> selectSome(["Holly", "Bowel", "champ", 'Fun', 'Apu'], ['a', 'F', 'C'])
champ
Fun
Apu

>>> selectSome([], ['a', 'b', 'c'])

>>> selectSome(['Eva', 'Bob'], [])
>>>

2 个答案:

答案 0 :(得分:11)

以下是您需要的要点:

>>> names = ['Alpha', 'Bravo', 'Charlie', 'Delta', 'Echo', 'Foxtrot']
>>> first_letters = ['A','B','C']
>>> output_names = [name for name in names if (name[0] in first_letters)]
>>> output_names
['Alpha', 'Bravo', 'Charlie']

我将包装作为一个功能由你决定。

测试你的理解:

  1. 你如何使这个不区分大小写?
  2. 你明白第3行是做什么的吗? (它被称为列表理解。)你能写出等效的for循环吗?

答案 1 :(得分:10)

检查Python的文档中的“startswith”字符串方法: http://docs.python.org/library/stdtypes.html#str.startswith

  

str.startswith(前缀[,开始[,结束]])   如果字符串开始则返回True   使用前缀,否则返回False。前缀也可以是元组   要查找的前缀。使用可选的start,测试字符串从   那个位置。使用可选的结尾,停止比较字符串   位置。

     

在版本2.5中更改:接受元组作为前缀。