获取以某些字母开头的名称列表[关闭]

Posted

技术标签:

【中文标题】获取以某些字母开头的名称列表[关闭]【英文标题】:Get a list of names which start with certain letters [closed] 【发布时间】:2012-04-25 10:28:25 【问题描述】:

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

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

>>> 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'], [])
>>>

【问题讨论】:

+1 用于实际发布您想要什么的清晰解释,以及示例输入和输出以演示它应该如何工作。 -1 未展示您在来找我们之前所做的研究。不过,这是一个好的开始。 【参考方案1】:

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

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

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

【讨论】:

啊,这确实是一个更好的解决方案。 +1。 (来自 C 和 MATLAB,我从数组索引的角度考虑一切,而不是“以”开头。) 这是一个非常好的解决方案...只是您必须正确阅读(元组)...所以这里的建议是使用元组作为前缀!很好【参考方案2】:

以下是您需要的要点:

>>> 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']

我将把它作为一个函数包装给你。

测试你的理解:

    如何使这个不区分大小写? 您了解第 3 行的作用吗? (这称为 列表推导式。)你能写出等效的 for 循环吗?

【讨论】:

Natch,这可能是家庭作业,我不应该给出这么多的答案。将来,在获得这种级别的帮助之前,您需要证明自己已尝试解决自己的问题(“您尝试过什么?”)。

以上是关于获取以某些字母开头的名称列表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式检查开头的特定字母加上最多九个数字字符,用于黑斑羚 [关闭]

查找名称包含字符串的所有文件[关闭]

如何使用jquery获取以值开头的类并将事件添加到每个类中的复选框[关闭]

输入城市名称并获取可能城市列表的 API? [关闭]

Python文件读取行以endswith开头并移至列表[关闭]

Kineticjs 停止渲染