python - 根据字符串中的第一个字符查找字符串列表中元素的第一次出现

标签 python string list python-2.7

我是 python 新手。我正在尝试获取字符串列表中的第一个数字,这些字符串是一系列数字中的数字,以公共(public)数字开头。

例如:

x = ['512','345','321','345','674','132','231','145','214','576']

我的预期输出:

result = ['512','345','674','132','231']

例如,在列表中以 1 开头的所有数字中,对于所有其他数字,我应该同样获得第一个数字。

我可以使用 for 循环两次来获取它。但我想知道有没有更好的方法。

注意:该列表是字符串列表,其中给出的数字只是一个示例。

最佳答案

您可以使用生成器函数来执行此操作。在函数中,您只需迭代初始列表,并为每个元素检查字符串的 set 中是否已经存在另一个以相同字符开头的元素。如果未找到匹配项,则yield 该元素。

>>> def get_num(lst):
...     found = set()
...     for element in lst:
...         if not any(item.startswith(element[0]) for item in found):
...             found.add(element)
...             yield element
... 
>>> x = ['512','345','321','345','674','132','231','145','214','576']
>>> list(get_num(x))
['512', '345', '674', '132', '231']

关于python - 根据字符串中的第一个字符查找字符串列表中元素的第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37072481/

相关文章:

java - 未为 Main 类型定义方法 collectFrom(List<Integer>)

python - 猜不同名字的数字游戏

C# 客户端 Python 服务器 : Connection refused

python - 使用ip地址来跟踪访客,有更好的方法吗? (使用Flask微框架)

php - PHP 中单引号和双引号字符串有什么区别?

python - 如何将两个不同长度的列表写入csv文件中的列和行

php - 是否可以在 PHP 的 foreach 语句中嵌入列表函数?

python - 在 python 中具有事件 TCP 连接的 HTTP 服务器

Swift 字符串和整数下标

如果分隔符存在,则 SQL 选择子字符串,否则给出完整字符串