如何使用for循环返回列表的最后一个元素

曼81

我需要根据此列表从每行中提取最后一个字符:

lst = [ '-ae-' , '-ap-' , '-vn-' , '-au-' , '-aw-' , '-be-' , '-bp-' , '-br-' , '-dz-' ]

这是一个样本df['CN']

1: aes-sof-mar-goo-wh-en-ap-bro-sear-vn-loc
2: aes-br-mar-goo-ww-en-dz-bp-cen 
3: aes-apt-au-goo-vn-en-br-bp

我使用此代码:

def param(df):
    lst = ['-ae-','-ap-','-vn-','-au-','-aw-','-be-','-bp-','-br-', '-dz-']
    for x in lst: 
        if x in df['CN']:
            return x

df['budget'] = df.apply(param, axis=1)

我需要返回列表上看到的最后一个元素:

1: -vn-
2: -bp-
3: -bp-

但是我的代码返回了每行的第一个交叉元素:

1: -ap-
2: -br-
3: -au-
ky

熊猫方式,使用series.str.findall()series.str()

pat=r'(?=({}))'.format('|'.join(re.escape(x) for x in lst))# @thanks Amadan
#'(?=(\\-ae\\-|\\-ap\\-|\\-vn\\-|\\-au\\-|\\-aw\\-|\\-be\\-|\\-bp\\-|\\-br\\-|\\-dz\\-))'
df['CN'].str.findall(pat).str[-1]

0    -vn-
1    -dz-
2    -br-

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用列表的最后一个元素直到循环完成

R: for 循环只对最后一个列表元素执行

For 循环只迭代列表中的最后一个元素

当与循环一起使用时,Ansible列表concat仅包含最后一个元素

返回drracket中列表的最后一个元素

如何以相反顺序循环列表并跳过最后一个元素

如何在R中循环的最后一个元素之后追加到列表?

如何在for循环中从列表中选择最后一个元素?

VBA数组循环未使用最后一个元素

如何获取列表的最后一个元素?

purrr::pluck - 如何获取列表的最后一个元素

如何只迭代列表的最后一个元素?

如何获取 JSON 列表的最后一个元素

使... of跳过循环的最后一个元素

使用Python中每个列表的最后一个元素

C:使用列表的数组的最后一个元素

如何删除列表的第一个和最后一个元素并返回没有这些元素的列表?

For循环返回最后一个结果

如何使用python删除循环列表中的元素,直到只剩一个元素?

删除列表的最后一个元素

获取列表的最后一个元素

更新列表的最后一个元素

如何使用 for 循环重命名另一个列表中的列表元素?

如果某个元素是列表中的最后一个元素,是否有任何函数返回True?

如何使用循环使一个列表中的元素等于另一列表中的元素?

在while循环中如何使用最后一个命令?

使用for循环时如何删除最后一个逗号?

在React中使用map返回一个等于最后一个元素的数组

使用递归查找列表的第一个和最后一个元素