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

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

如何刪除列表中的重復數字(Python)?

如何刪除列表中的重復數字(Python)?

SMILET 2023-08-22 18:02:28
我有一個清單:words = ['1,2,3,4',         '5,7,8,4',         '1,2,3,9']我的目標是根據單詞創建一個新列表,但不包含重復的數字。這是我想要的一個例子!new_list=[1,2,3,4,5,7,8,9]我做到了 :words = ['1,2,3,4',         '5,7,8,4',         '1,2,3,9']new_list = []for i in words :    if i not in new_list:        new_list.append(i)print(new_list)但我的列表中再次出現相同的數字:['1,2,3,4', '5,7,8,4', '1,2,3,9']編輯 :我想做同樣的事情,但用真實的語言,比如:[" apple is not good",  "mongo is delicious",  banana is very good"] 我的新名單必須是這些短語中的每一個單詞都是獨一無二的。這是我想要的結果的示例:["apple,is,not,good,mongo,delicious,banana,very"]正如您所看到的,我只從列表的短語中獲得了唯一的單詞。
查看完整描述

3 回答

?
瀟湘沐

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

words您可以將with模塊的元素組合起來itertools chain,然后使用 set() 方法來消除所有重復項:


import itertools

words = ['1,2,3,4','5,7,8,4','1,2,3,9']

c = list(set(itertools.chain(words[0].replace(',',''),words[1].replace(',',''),words[2].replace(',',''))))

new_words = [int(x) for x in c]

new_words.sort()

print(new_words)

結果


[1, 2, 3, 4, 5, 7, 8, 9]

對于更新

import itertools

words = ["apple is not good",  "mongo is delicious",  "banana is very good"] 

new_words = list(set(itertools.chain(words[0].split(' '), words[1].split(' '), words[2].split(' '))))

print(new_words)

結果


['not', 'mongo', 'is', 'apple', 'good', 'very', 'delicious', 'banana']


查看完整回答
反對 回復 2023-08-22
?
慕桂英3389331

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

words = ['1,2,3,4',

         '5,7,8,4',

         '1,2,3,9']


new_list = []

for w in words :

    for i in map(int, w.split(',')):

        if i not in new_list:

            new_list.append(i)

print(new_list)

訣竅是從列表中的每個單詞中提取數字。每個word都是由逗號分隔的一系列數字。因此,w.split(',')將每個以逗號分隔的數字字符串拆分為一個列表。該map()函數將該int()方法應用于每個數字字符串,將其轉換為數值。然后,如果該值尚不存在,則將其添加到 new_list 中。


此解決方案還處理大于 9 的數字。


另外,舉個例子來幫助理解map:


"1,2,3,4".split(",") --> ["1", "2", "3", "4"]


map(int, ["1", "2", "3", "4"]) --> [1, 2, 3, 4]


查看完整回答
反對 回復 2023-08-22
?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

You need to use extend,  not append. And also split each line. Convert to "set" to remove duplicate items

words = ['1,2,3,4',

             '5,7,8,4',

             '1,2,3,9']


new_list = []

for i in words :

        new_list.extend(i.split(','))

new_list = list(set(new_list))

new_list.sort()

print(new_list)

或者


保持元素的順序


    words=['apple,banana,orange', 'apple, mango']


    new_list = []

    for i in words :

            new_list.extend(i.split(','))

    result =[]

    for i in new_list:

        if i not in result:

            result.append(i)

    

    print(result)


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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