在不使用内建的情况下在Python中列表切片

我对编程非常陌生,目前我坚持一个涉及列表切片而不使用内置函数的实践问题,所以我们的想法是创建自己的切片函数供用户调用。 以下是我试图解决的问题。 任何帮助表示赞赏。 谢谢!

Python为列表提供了切片功能,但对于这个问题,您将实现自己的能够生成列表切片的功能(注意:您不能在解决方案中使用切片操作符)。 该函数应该被称为slice,并按照以下特定顺序接受以下三个输入:

  • 将从中创建切片的列表,来源。 这个列表不能被你的函数修改。
  • 一个正整数,开始,表示您要创建的切片的起始索引。 如果这个值不在[0,len(list)-1]的范围内,你的函数应该返回一个空列表。
  • 一个正整数end,表示您将创建的切片的结束索引。 如果这个值不在[start,len(list)-1]的范围内,你的函数应该返回一个空列表。
    如果参数值是可接受的,你的函数将返回一个列表,其中包含从索引开始到索引结束(包含)结束的来自源的项目。 这与Python切片操作符不同,因为索引末尾的项目也包含在新列表中。
  • 例子:

    mylist = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]  
    slice(mylist, 0, 9) should be ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"] slice(mylist, 3, 4) should be ["D", "E"]  
    slice(mylist, 4, 3) should be [ ]  
    slice(mylist, 3, 8) should be ["D", "E", "F", "G", "H", "I"]  
    slice(mylist, 4, 4) should be ["E" ]
    

    我的代码:

    source=int(input("Enter a list: "))  
    start=int(input("Enter the starting digit: "))  
    end=int(input("Enter the ending digit: "))  
    
    def slice(source,start,end):  
            if start is not [0, len(source)-1]:
                print()  
            elif end is not [start, len(source)-1]:  
                print()  
        source.append(0,start)  
        source.append(len(source),end)  
    
    slice[]
    

    想象出它自己,谢谢你试图帮助,而不是居高临下@lmiguelvargasf我真的很感激。

    start = int(input(" Enter the starting index of the slice you will create: "))
    end = int(input("Enter the ending index of the slice you will create:  "))
    def slice(source, start, end):
        myList = []
        for i in range(start, end+1):
            if start in range(0, len(source)) and end in range(start,     len(source)):
            myList.append(source[i])
    return myList
    
    myList = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] #This is the source
    print(slice(myList,start,end))
    
    链接地址: http://www.djcxy.com/p/26761.html

    上一篇: List Slicing in Python Without Using Built

    下一篇: Is list[i:j] guaranteed to be an empty list if list[j] precedes list[i]?