Python 中的解析序列

问题描述 投票:0回答:1

我正在学习 Python,并正在完成课程中的一些实践实验室。

提示是 如果整数列表中存在序列“007”则返回 True

应返回 True 的 nums 列表示例:[1,2,3,4,0,0,7,3,1,6]

我选择将列表解析为一串连续整数,如下所示:

def find_sequence(nums)
    str_nums = str(nums).strip('[]').replace(',','').replace(' ','')
    if '007' in str_nums:
        return True
    else:
        return False

解决方案更喜欢与您自己的包含整数序列的列表进行比较,并使用 pop() 如下:

def find_sequence(nums)
    code = [0,0,7,'x']
    for num in nums:
        if num == code[0]:
            code.pop(0)
    return len(code) == 1

其中一种方式比另一种“更好”还是“更差”?哪种方式或多或少实用(您会在专业环境中看到其中一种与另一种的比较)吗?

这只是初学者级别的课程内容,所以也许这些都是菜鸟解决方案,更实际的东西是课程中稍后的概念。

python parsing
1个回答
0
投票

您误解了任务的要求。需求是检测目标列表中是否存在0,0,7的序列,但不一定是直接序列,但如果是分布式的,那么也列表

[1,2,0,3,0,4,7,3,1,6]

预计也会大受欢迎。

首选解决方案会进行此类搜索,而您的方法则不会。

© www.soinside.com 2019 - 2024. All rights reserved.