python中列表的Startswith?

python中列表的Startswith?,python,list,python-2.7,Python,List,Python 2.7,python中是否有类似于for列表的start 我想知道列表a是否以列表b开头。像 len(a) >= len(b) and a[:len(b)] == b ? 您可以只写a[:len(b)]==b 如果len(b)>len(a),则不会出现错误。您只需编写a[:len(b)]==b 如果len(b)>len(a),则不会产生任何错误。它不会比您拥有的更简单(甚至不需要检查长度)。。。 有关在列表中查找子列表的更多扩展/优雅选项的概述,您可以查看此问题的主要答案 post:它不会比您拥

python中是否有类似于for列表的start

我想知道列表a是否以列表b开头。像

len(a) >= len(b) and a[:len(b)] == b ?

您可以只写
a[:len(b)]==b


如果len(b)>len(a),则不会出现错误。

您只需编写
a[:len(b)]==b


如果len(b)>len(a),则不会产生任何错误。

它不会比您拥有的更简单(甚至不需要检查长度)。。。 有关在列表中查找子列表的更多扩展/优雅选项的概述,您可以查看此问题的主要答案
post:

它不会比您拥有的简单得多(甚至不需要检查长度)。。。 有关在列表中查找子列表的更多扩展/优雅选项的概述,您可以查看此问题的主要答案
post:

对于大型列表,这将更有效:

from itertools import izip
...
result = all(x==y for (x, y) in izip(a, b))
对于小列表,您的代码很好。如前所述,长度检查可以省略,但不会有太大区别


PS:不,没有内置功能来检查一个列表是否以另一个列表开始,但正如您已经知道的,自己编写这样的函数很简单。

对于大型列表,这将更有效:

from itertools import izip
...
result = all(x==y for (x, y) in izip(a, b))
对于小列表,您的代码很好。如前所述,长度检查可以省略,但不会有太大区别



PS:不,没有内置功能来检查一个列表是否以另一个列表开始,但正如您已经知道的,自己编写这样一个函数很简单。

这有什么问题?没有那么多需要优化的地方。@Christian,同样对字符串进行优化也没有错,但是有一个API,我认为没有比这更简单的方法了。@ElefEnt,我认为你也可以对字符串进行同样的优化,几乎可以对任何ITerablean进行优化。你认为API中的方法是如何实现的?这有什么错?没有那么多需要优化的地方。@Christian,同样对字符串进行优化也没有错,但是有一个API,我认为没有比这更简单的方法了。@ElefEnt,我认为你也可以对字符串和几乎所有的ITerablean进行优化。你认为API中的方法是如何实现的?你是说len(b)在任何情况下都不会出现错误。切片超过列表的长度不会失败。这是真的,但为了使其正常工作,应该满足条件。不,不应该。它将适用于
len(a)
len(a)==len(b)
,以及
len(a)>len(b)
。前者总是
false
,但代码会工作得很好。@Tim:
false
,而不是
false
。这是Python,不是Java(或任何其他布尔常量以小写字母开头的语言)。您的意思是len(b)在任何情况下都不会出现错误。切片超过列表的长度不会失败。这是真的,但为了使其正常工作,应该满足条件。不,不应该。它将适用于
len(a)
len(a)==len(b)
,以及
len(a)>len(b)
。前者总是
false
,但代码会工作得很好。@Tim:
false
,而不是
false
。这是Python,而不是Java(或布尔常量以小写字母开头的任何其他语言)