gpt4 book ai didi

python - 将列表切片到给定元素

转载 作者:太空宇宙 更新时间:2023-11-04 07:50:34 26 4
gpt4 key购买 nike

如果你有一个列表 my_list = ['a', 'd', 'e', 'c', 'b', 'f'] 并且你想构建一个子列表,包含给定元素之前的所有元素,例如 my_list_up_to_c = ['a', 'd', 'e'],这如何以一种易于扩展的方式完成?也可以通过使用 numpy 数组来加快速度吗?

最佳答案

最少的代码可能是使用 .index() (请注意,这会搜索到所述列表中元素的第一次出现):

>>> my_list = ['a', 'd', 'e', 'c', 'b', 'f']
>>> my_list
['a', 'd', 'e', 'c', 'b', 'f']
>>> my_list[:my_list.index('c')] # excluding the specified element
['a', 'd', 'e']
>>> my_list[:my_list.index('c')+1] # including the specified element
['a', 'd', 'e', 'c']

调用 .index() 的时间复杂度是 O(n),这意味着它最多会在列表上迭代一次。列表切片的复杂度为 O(k)(根据 this source ),这意味着它取决于切片的大小。

所以在最坏的情况下,您要查找的元素位于列表的末尾,因此您的搜索将运行到列表的末尾 (O(n)) 并且切片将复制整个列表(也是 O(n)),导致最坏情况下的 O(2n) 仍然是线性复杂度。

关于python - 将列表切片到给定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55513322/

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