微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

除了第一次出现之外,如何删除列表中所有特定值的出现?
例如.我有一个清单:

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

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

preserve_first(letters, 'c')

并返回:

['a', 'b', 'c', 'd', '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', 'b', 'c', 'd', 'a', 'a']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐