codewars(python)練習(xí)筆記十一:去除任意相鄰兩位之間相同的元素

codewars(python)練習(xí)筆記十一:去除任意相鄰兩位之間相同的元素

題目

Implement the function unique_in_order which takes as argument a sequence and returns a list of items without any elements with the same value next to each other and preserving the original order of elements.

For example:

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]

題目大意:
實(shí)現(xiàn)函數(shù)unique_in_order,該函數(shù)將參數(shù)作為參數(shù),并返回一個(gè)項(xiàng)目列表,其中任意相鄰兩位之間,沒有包含相同值的元素,區(qū)分大小寫,并保留元素的原始順序。

我的解法:

def unique_in_order(iterable):
    list_temp = []
    for item in iterable:
        if len(list_temp) == 0 or item != list_temp[len(list_temp)-1]:
            list_temp.append(item)
    return list_temp

其他解法一:

def unique_in_order(iterable):
    result = []
    prev = None
    for char in iterable[0:]:
        if char != prev:
            result.append(char)
            prev = char
    return result

其他解法二:

from itertools import groupby

def unique_in_order(iterable):
    return [k for (k, _) in groupby(iterable)]

其他解法三:

unique_in_order = lambda l: [z for i, z in enumerate(l) if i == 0 or l[i - 1] != z]

其他解法四:

def unique_in_order(iterable):
  r = []
  for x in iterable:
    x in r[-1:] or r.append(x)
  return r

其他解法五:

def unique_in_order(it):
    return [it[0]] + [e for i, e in enumerate(it[1:]) if it[i] != e] if it else []

其他解法六:

def unique_in_order(string):
    lst = [string[i] for i in range(0,len(string)) if (i==0 or string[i]!=string[i-1])];
    return lst;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,872評(píng)論 0 10
  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 11,261評(píng)論 0 23
  • 上嘴唇一直很蒼白,而且有很多死皮,抿嘴唇的時(shí)候會(huì)感覺到有皮屑,但是一直弄不掉。為什么呢,事因?yàn)樨氀彼畣?。但是感覺...
    奮起直追閱讀 270評(píng)論 0 0
  • 揭開面紗, 周圍有多少虛情和假意, 又剩幾分真心與實(shí)意? 未知。 這本是一個(gè)未知的世界, 靠你用心去探索, 用傷痕...
    小黑_North閱讀 540評(píng)論 0 0
  • 觀影《賓虛》之對(duì)盼望與死亡的思考 我不知道盼望是什么。 因?yàn)槲彝浟怂劳觥?死亡不會(huì)再來了嗎? 當(dāng)我知道,祂已經(jīng)勝...
    辛巴_f1db閱讀 154評(píng)論 0 0

友情鏈接更多精彩內(nèi)容