Python删除给定元素之前的所有元素【题目:Remove All Before】

题目介绍:给定一个列表,包含多个元素,再给一个列表中的元素,删除给的元素之前的所有元素,返回列表

注:如果列表为空则返回空,如果给的元素不在列表中则直接返回列表,不做任何操作

题目要求:

Input: List and the border element.

Output: Iterable (tuple, list, iterator …).

Example:

remove_all_before([1, 2, 3, 4, 5], 3) == [3, 4, 5]

remove_all_before([1, 1, 2, 2, 3, 3], 2) == [2, 2, 3, 3]

题目分析:利用for循环遍历每个元素,如果元素不在列表,直接返回原列表,如果元素在列表中,则while循环取出第一个元素,如果不是给定的元素,直接用列表的remove方法删除该函数,直到匹配到给定的元素,返回修改后的列表

我的答案:

from typing import Iterable


def remove_all_before(items: list, border: int) -> Iterable:
    # your code here
    for i in items:
        if i == border:
            while items[0] != border:
                items.remove(items[0])
            return items
    else:
        return items
            


if __name__ == '__main__':
    print("Example:")
    print(list(remove_all_before([1, 2, 3, 4, 5], 3)))

    # These "asserts" are used for self-checking and not for an auto-testing
    assert list(remove_all_before([1, 2, 3, 4, 5], 3)) == [3, 4, 5]
    assert list(remove_all_before([1, 1, 2, 2, 3, 3], 2)) == [2, 2, 3, 3]
    assert list(remove_all_before([1, 1, 2, 4, 2, 3, 4], 2)) == [2, 4, 2, 3, 4]
    assert list(remove_all_before([1, 1, 5, 6, 7], 2)) == [1, 1, 5, 6, 7]
    assert list(remove_all_before([], 0)) == []
    assert list(remove_all_before([7, 7, 7, 7, 7, 7, 7, 7, 7], 7)) == [7, 7, 7, 7, 7, 7, 7, 7, 7]
    print("Coding complete? Click 'Check' to earn cool rewards!")
Python学习

Python将字符串反向存放【题目:Backward String】

2021-4-3 16:48:34

Python学习

Python判断字符串中的字母是否全为大写【题目:All Upper I】

2021-4-3 17:40:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索