gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:50 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com