加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python:首先在列表中出现一个项目

发布时间:2020-12-20 12:34:28 所属栏目:Python 来源:网络整理
导读:除了第一次出现之外,如何删除列表中所有特定值的出现? 例如.我有一个清单: letters = ['a','b','c','d','a','c'] 我需要一个看起来像这样的函数: preserve_first(letters,'c') 并返回: ['a','a'] 删除除第一次出现的给定值之外的所有内容,否则保留顺序.
除了第一次出现之外,如何删除列表中所有特定值的出现?
例如.我有一个清单:

letters = ['a','b','c','d','a','c']

我需要一个看起来像这样的函数:

preserve_first(letters,'c')

并返回:

['a','a']

删除除第一次出现的给定值之外的所有内容,否则保留顺序.如果有办法用pandas.Series做更好的事情.

解决方法

您只想删除重复的’c’.因此,您希望过滤系列根本不重复的位置,或者它不等于’c’.我喜欢使用pd.Series.ne代替pd.Series!=因为包装括号的减少增加了可读性(我的观点).

s = pd.Series(letters)

s[s.ne('c') | ~s.duplicated()]

0    a
1    b
2    c
5    d
7    a
8    a
dtype: object

完全按照要求去做.

def preserve_first(letters,letter):
    s = pd.Series(letters)
    return s[s.ne(letter) | ~s.duplicated()].tolist()

preserve_first(letters,'c')

['a','a']

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读