簡體   English   中英

我正在嘗試對列表進行分段,然后根據給定的輸入值刪除重復項? 但是我錯過了一些東西

[英]I am trying to segment the list and then remove duplicates according to the given input values ? However I am missing something

有 2 個輸入

  1. 長度為N的字符串。
  2. 一個滿足條件的 integer kN % k = 0

例如:

“啊啊啊啊啊”

3

在這種情況下,我需要將字符串分成 (9/3) 3 個子部分,然后我需要刪除重復項

解釋-> 你可以在這里看到演示。

我寫了一個代碼來做確切的事情,但是在我的 output 部分的末尾我看到“無”。 我想不通這是從哪里來的。。

這是我的代碼:

s = "AABCAAADA"
k = 3
def merge_the_tools(string, k):
    ls = segment(string,k)
    for l in ls:
        print(remove_repetitive(l))

def remove_repetitive(string):
    temp = list(dict.fromkeys(string))
    return "".join(temp)


def segment(string,k):
    ls = []
    segment_len = int(len(string) / k)
    x = 0
    for i in range(segment_len):
        ls.append(string[x:x+k])
        x += k
    return ls

print(merge_the_tools(s,k))

這是我的 output:

AB
CA
AD
None
k = 3

new = [s[((x+1)*3)-3:(x+1)*3] for x in range(k)]

new = list(map(set, new))

print(new)

>>> ({'B', 'A'}, {'C', 'A'}, {'D', 'A'})

這一行[((x+1)*3)-3:(x+1)*3]只是獲取接下來的三個項目並從中列出一個列表並將其添加到整個列表中。

此行list(map(set, new))只是從每個列表中刪除重復項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM