Python:比较列表中的最后一个元素

果汁

我正在使用包含字符串列表的列,并且想比较每一行中的最后一个元素。如果最后一个元素不匹配,我想创建一个新变量,将第一个元素和最后一个元素连接起来,如下所示:element[0].element[-1]

如果它们确实匹配,我想通过在列表中添加下一个元素来区分它们: element[0].element[-2].element[-1]

我已将此列作为其原始格式的列表。以下是pandas数据框中原始变量的摘要:

apple.banana.pear
apple.starfruit.grape
apple.kiwi.orange.pear
apple.durian.coconut
Name: original, Length: 4, dtype: string

mylist = df['original'].apply(lambda x: x.split('.'))

我目前的清单:

[apple, banana, pear]
[apple, starfruit, grape]
[apple, kiwi, orange, pear]
[apple, durian, coconut]

所需的输出:

apple.banana.pear
apple.grape
apple.orange.pear
apple.coconut

我不确定将其放入列表是否最佳,但认为将每个部分作为元素进行访问会更容易。事实并非如此。这是我尝试过的:

l = 0
j = l + 1
for l in mylist:
    for j in mylist:
        if mylist[l][-1] == mylist[j][-1]:
            newvar = mylist[l][0] + '.' + mylist[l][-2] + '.' + mylist[l][-1]
        else:
            newvar = mylist[l][0] + '.' + mylist[l][-1]

KeyError: "None of [Index(['apple', 'banana', 'pear'], dtype='object')] are in the [index]"

任何建议,不胜感激。

贝尼

我们能做的

s=df.original.str.split('.')
df['new']=np.where(s.str[-1].duplicated(keep=False),
                   s.str[0]+'.'+s.str[-2]+'.'+s.str[-1],
                   s.str[0]+'.'+s.str[-1])
df
Out[47]: 
                 original                new
0       apple.banana.pear  apple.banana.pear
1   apple.starfruit.grape        apple.grape
2  apple.kiwi.orange.pear  apple.orange.pear
3    apple.durian.coconut      apple.coconut

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python将列表中的最后一个元素分组

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

将列表的元素作为最后一个元素插入到python列表中的列表中

Python:如何将列表的最后一个元素与字符串的字符进行比较

如何从python复制列表列表而没有每个列表中的最后一个元素

迭代Python列表中的连续元素,以使最后一个元素与第一个元素结合

比较列表中的元素并创建一个新元素

Python-如何删除列表列表中的最后一个元素?

如何在列表理解中修改Python列表的最后一个元素?

Python:从列表列表中删除最后一个元素?

通过比较第一个元素 Python 连接列表中的列表

从列表列表的最后两个列表中删除最后一个元素

如何根据python中的最后一个元素找到列表列表中的前3个列表?

如何在Python中以不同的方式对待列表中的最后一个元素?

如何在 Python 中删除列表的最后一个元素中的字符?

Python追加列表重复最后一个元素?

将最后一个元素放在列表Erlang中

Scala列表中的最后一个元素?

方法不会替换列表中的最后一个元素

获取f#中列表的最后一个元素

获取Scheme中列表的最后一个元素

更改列表中的最后一个元素

访问小标题列表中的最后一个元素

列表中的Prolog递归,最后一个元素

加入列表中的最后一个元素

更改列表中的最后一个元素

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

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

能够仅访问Python Unicode字典中列表的最后一个元素