获取以某些字母开头的名称列表[关闭]
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获取以值开头的类并将事件添加到每个类中的复选框[关闭]