我是 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/