gpt4 book ai didi

python - 过滤数组并仅检索以最高数字开头的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:06 26 4
gpt4 key购买 nike

我有以下示例数组:

arr = ["0001_xyz_01", "0001_xyz_02", "0001_xyz_03", "0002_xyz_01", "0002_xyz_02", "0002_xyz_03", "0003_xyz_01", "0003_xyz_02", "0003_xyz_03"]

我想从这个数组创建一个新数组,只包含以最高数字开头的字符串。所以新数组看起来像:

new_arr = ["0003_xyz_01", "0003_xyz_02", "0003_xyz_03"]

注意:

  • 构建 new_arr 时,只应查看前 4 个字符 - 必须忽略字符串的其余部分。
  • arr 中的项目顺序可能会改变。
  • arr 中的项目数可能会改变。

我想我可以使用 filter,但我不确定如何:

new_arr = filter(lambda x: <some-filtering-here>, arr)

最佳答案

不是一个很好的解决方案,但你可以试试这个......

>>> new_arr = [x for x in arr if x.startswith(sorted([y[:4] for y in arr])[-1])]
['0003_xyz_01', '0003_xyz_02', '0003_xyz_03']

解释:

  • sorted([y[:4] for y in arr])[-1] 对每个字符串的前 4 个字符的列表进行排序,并选择最大值。

  • [x for x in arr if x.startswith(...)] 是一个列表推导式,它挑选出以此最高值开头的字符串。

关于python - 过滤数组并仅检索以最高数字开头的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25942202/

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