为了账号安全,请及时绑定邮箱和手机立即绑定

如何忽略添加到Python列表中的特定元素

如何忽略添加到Python列表中的特定元素

ITMISS 2021-05-30 00:11:14
我有一个python列表。假设它是一个空列表。有什么方法可以使列表忽略在列表创建本身时有人尝试添加的特定字符。假设我想忽略所有的“。” 当有人尝试使用 list.append('.') 附加字符时要忽略的字符。有没有办法在创建列表时提到这一点?
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您可以创建一个特殊的附加函数,如果字符不是 a ,则该函数会就地修改列表'.':


def append_no_dot(l, c):

   if c != '.': l.append(c)

>>> l = ['a','b']

>>> append_no_dot(l, 'c')

>>> append_no_dot(l, '.')

>>> l

['a', 'b', 'c']


查看完整回答
反对 回复 2021-06-01
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

在python中执行此操作的最佳方法是创建具有所需行为的新类


>>> class mylist(list):

...     def append(self, x):

...             if x != ".":

...                     super().append(x)

... 

>>> l = mylist()

>>> l.append("foo")

>>> l

['foo']

>>> l.append(".")

>>> l

['foo']


查看完整回答
反对 回复 2021-06-01
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

我认为您不应该这样做,但是如果确实需要,可以将列表子类化,如下所示:


class IgnoreList(list):

    def append(self, item, *args, **kwargs):

        if item == '.':

            return

        return super(IgnoreList, self).append(item)

但是非常不符合pythonic。更好的解决方案是只在调用append之前检查该值。


if value != '.':

    my_list.append(value)


查看完整回答
反对 回复 2021-06-01
  • 3 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号