gpt4 book ai didi

python - 从数组中获取第一个前一个不匹配的元素

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:12 24 4
gpt4 key购买 nike

我想在向后迭代时获取第一个不匹配的元素。

这是我的输入数组:

data = ['2017','No 1','No 2','2018','No 3','No 4','No 5']

而且,预​​期的结果是,

['2017', '2017', '2017', '2018', '2018', '2018', '2018']

字符串 "No 1""No 2" 必须映射到字符串 "2017"

基本上我想通过迭代上一个返回不匹配“No”的字符串。

下面的代码片段符合我的预期,但我想知道是否有更好的方法来做到这一点

def get_name(i, d):
if d.find('No') >= 0:
return get_name(i - 1, data[i - 1])
else:
return d

[get_name(i,d) for i,d in enumerate(data)]

最佳答案

只需记住最后一个“好”元素,然后产出那个元素或实际元素。

def func(lst, default=None):
last = default
for e in lst:
last = e if not e.startswith("No") else last
yield last

>>> data = ['2017','No 1','No 2','2018','No 3','No 4','No 5']
>>> list(func(data))
['2017', '2017', '2017', '2018', '2018', '2018', '2018']

关于python - 从数组中获取第一个前一个不匹配的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47750684/

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