亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 中的列表迭代

Python 中的列表迭代

神不在的星期二 2021-07-28 17:56:33
我需要取一個字符串,例如 AABCAAADA 并將其拆分為給定數量的字符串,比如說 3(但這可以是任何東西)。然后,在這些字符串中,刪除重復的字符。對于給定的示例,此代碼的輸出應為 AB、CA 和 AD。我的代碼為最后一個示例生成 DA,我不明白為什么會這樣。import textwrapdef splitToT(string, number):    wordsList = list(textwrap.wrap(string,number))    for word in wordsList:        t = word        makeU(t)def makeU(t):    list1 = list(t)    list2 = list(t)    print"list1 = "    print list1    print"list2 = "    print list2    for l1e in list1:        print "element from list1"        print l1e        count = 0        print"COUNT RESET"        for l2e in list2:            print "\t Element in list2"            print("\t" + l2e)            if str(l1e) == str(l2e):                count = count+1                print count                if count >= 2:                    print("removing element")                    print l2e                    list2.remove(l2e)                    print"\tlist 2 is now"                    print list2    print "LIST2 IS:"    print list2    print("-----")def main():    n = 3    S = 'AABCAAADA'    splitToT(S, n)if __name__ == "__main__":    main()
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

您的程序將刪除第一組元素。


AABCAAADA

被打破了


aab

caa

ada

然后計算在列表中找到了多少個元素,如果找到兩個或更多,則將其刪除。


所以aab需要a,并計算它,它大于2,所以它刪除了第一個a。第二次迭代,它有ab,它a再次計數,但只有一個a,所以它通過了。

第三次迭代很重要b,因為只有一次,它會將它添加到您的列表中。


我會把你要刪除的字母大寫


Aab

cAa

Ada

最后一個看起來錯了,但這是因為你的算法是如何設計的,它把最后一個字母留在那里。


查看完整回答
反對 回復 2021-08-03
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

下面是一些可以幫助你的東西


import textwrap

s='ababbcdfgfhh'

n=3 #or anything, you can take as input

lst=[]

x=0

lst=list(textwrap.wrap(s, n))


print(lst)

for x in lst:

    print(''.join(sorted(set(x), key=x.index))) # removing the duplicates by using 'set'

它將產生如下輸出:


['aba', 'bbc', 'dfg', 'fhh'] 

ab

bc

dfg

fh

輸出中的第一行被打印以檢查 lst


查看完整回答
反對 回復 2021-08-03
?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

您可以將字符串視為列表,并將切片重建為集合,如下所示:


s = list("AABCAAADA")


def slicer(s, slices):

    data = []

    for x in slices:

        # slices is a list of tuples, where x[0]

        # is the starting slice and x[1] is the end

        data.append(set(s[x[0]:x[1]]))

    return data

slicer(s, [(0, 3), (3, 6), (6, 9)])

為了保留字符串的順序,我認為您必須遍歷切片并且只彈出一次新的唯一值。但否則我認為方法是相同的


查看完整回答
反對 回復 2021-08-03
  • 3 回答
  • 0 關注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號