gpt4 book ai didi

python - 在python中编辑列表中的元素

转载 作者:太空狗 更新时间:2023-10-29 17:10:07 24 4
gpt4 key购买 nike

如何从列表中的元素中删除字符?

例子:

mylist = ['12:01', '12:02']

我想从文件中的时间戳中删除冒号,这样我就可以更轻松地将它们转换为 24 小时制。现在我正在尝试遍历列表中的元素并搜索包含冒号的元素并进行替换。

for num in mylist:
re.sub(':', '', num)

但这似乎行不通。

帮助!

最佳答案

列表理解解决方案是最 Pythonic 的解决方案,但是,有一个重要的转折:

mylist[:] = [s.replace(':', '') for s in mylist]

如果你分配给 mylist,就像另一个答案中的裸名,而不是像我一样分配给 mylist[:],“whole-list slice”建议,您确实在做一些与“替换列表中的条目”非常不同的事情:您正在制作一个新列表,只是重新绑定(bind)您之前用来引用旧列表的裸名。

如果旧列表被多个名称引用(包括容器中的条目),则此重新绑定(bind)不会影响其中任何一个:例如,如果您有一个函数将 mylist 作为一个参数,裸名赋值只对函数局部有任何影响,不会改变调用者看到的列表内容。

分配给整个列表切片,mylist[:] = ...改变列表对象而不是通过切换 barenames 的绑定(bind)来搞砸 -- 现在该列表确实已更改,无论如何引用,新值都是所见。例如,如果您有一个将 mylist 作为参数的函数,则整个列表切片赋值会改变调用者看到的列表内容。

关键是要确切地知道你在追求什么效果——最常见的是你会想要改变列表对象,所以,如果必须猜测,整个列表切片赋值通常是最好的猜测; -).在性能方面,这两种方式都没有区别(当然,除了裸名分配,如果它同时保留旧列表对象和新列表对象,那么无论这两个对象仍然存在多久,都会占用更多内存)。

关于python - 在python中编辑列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3094659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com