Python 如何使用索引在特定点停止列表?

Python 如何使用索引在特定点停止列表?,python,indexing,Python,Indexing,我只想在值'--'之前显示一个整数列表,不管它在列表中的什么位置,我希望它停止在'--'点 输入: list1 = ['pop', 'sop', 'kla', 'so', 'Lu', 'ys', 'Se', '---', 'rop', 'pol'] 我想要的输出: list1 ['pop', 'sop', 'kla', 'so', 'Lu', 'ys', 'Se'] 我已经尝试过索引,但遇到了问题。您可以在索引的输出上使用切片,如下所示: 正如@deceze所指出的,如果列表中不存在元素,它

我只想在值'--'之前显示一个整数列表,不管它在列表中的什么位置,我希望它停止在'--'点

输入:

list1 = ['pop', 'sop', 'kla', 'so', 'Lu', 'ys', 'Se', '---', 'rop', 'pol']
我想要的输出:

list1 ['pop', 'sop', 'kla', 'so', 'Lu', 'ys', 'Se']

我已经尝试过索引,但遇到了问题。

您可以在索引的输出上使用切片,如下所示:

正如@deceze所指出的,如果列表中不存在元素,它会抛出一个错误,在这种情况下,您可以在切片部分添加一个检查,如下所示:

list2 = list1[:list1.index('---') if '---' in list1 else len(list1)]

请参阅。

您可以使用以下命令将列表切至该项目:

list1[:list1.index('---')]

它将在'--'的索引位置停止。

我想这可能是您想要的:

list1 = ['pop', 'sop', 'kla', 'so', 'Lu', 'ys', 'Se', '---', 'rop', 'pol']
x=list1[0]
i=0;
while x!='---':
    x=list1[i]
    i=i+1
    if x!='---':
        print(x,end=', ')

您尝试过.index或.find并使用其输出进行索引吗?我使用了错误的方法,谢谢您的帮助,我得到了答案。请注意,这会产生一个ValueError,它不应该存在于列表中…使用该固定版本,您现在至少会对列表的一部分进行三次迭代…!我想我们不需要迭代列表来获得len,我们需要吗?不,不是这样,但是:一次用于in-check,然后再次用于索引,然后再次用于切片,尽管这可能非常有效。它并没有停止,它只删除了索引“---”,只是尝试了一下it@Back那么你的测试是错误的。是的。它不会从列表中删除任何内容,而是从启动到'--'项的索引位置对列表进行切片。当然,只要它存在于列表中。
list1[:list1.index('---')]
list1 = ['pop', 'sop', 'kla', 'so', 'Lu', 'ys', 'Se', '---', 'rop', 'pol']
x=list1[0]
i=0;
while x!='---':
    x=list1[i]
    i=i+1
    if x!='---':
        print(x,end=', ')