美文网首页
习题3:采取样例

习题3:采取样例

作者: 今年说话算话 | 来源:发表于2017-02-21 16:17 被阅读0次
unique_in_order('AAAABBBCCDAABBB') == ['A', 'B', 'C', 'D', 'A', 'B']
unique_in_order('ABBCcAD')         == ['A', 'B', 'C', 'c', 'A', 'D']
unique_in_order([1,2,2,3,3])       == [1,2,3]
def unique_in_order(iterable):
    q = list(iterable)
    i = 1
    while i < len(q):
        if q[i-1] == q[i]:
            q.pop(i)
        else:
            i += 1
    return q

刚开始写的

def unique_in_order(iterable):
    q = list(iterable)
    for i in range(1, len(q)):
        if q[i-1] == q[i]:
            q.pop(i)
    return q

有错误:用于迭代的序列只有一次初始机会。
论坛中其他大神的解答:

from itertools import groupby
def unique_in_order(iterable):
    return [x for x, _ in groupby(iterable)]
def unique_in_order(iterable):
    return [z for i, z in enumerate(iterable) if i == 0 or z != iterable[i-1]]

相关文章

网友评论

      本文标题:习题3:采取样例

      本文链接:https://www.haomeiwen.com/subject/qisuwttx.html