Python 列表去重去除空字元
# y = []
# for i in x:
# for ii in i:
# # print(ii)
# if ii == ' ':
# pass
# else:
# y.append(ii)
# print(y)
# python 清除列表中的空字元
# list1 = ['122','2333','3444',' ','422',' ',' ','54',' ']
# 第一種方法會導致最後一個' '沒有被移除掉['122', '2333', '3444', '422', '54', ' ']
# for x in list1:
# if x == ' ':
# list1.remove(' ')
# print(list1)
# 第二種方法:['122', '2333', '3444', '422', '54']
# for x in list1:
# if ' ' in list1:
# list1.remove(' ')
# print(list1)
# 第三種方法:遍歷空格的個數,然後逐個刪除
# for x in range(list1.count(' ')):
# list1.remove(' ')
# print(list1)
# 第四種方法:用了while和for一樣
# while ' ' in list1:
# list1.remove(' ')
# print(list1)
# 去除字串中間的空格
# 第一種方法:使用replace,但是這種方法很笨,如果字串中間有一萬個空格怎麼辦,也要全部打出來嗎
# a = 'hello world'
# b = a.replace(' ','')
# print(b)
# 第二種方法:
# a = 'hello world'
# a = list(a)
# for x in a:
# if ' ' in a:
# a.remove(' ')
# bb = ''.join(a)
# print(bb)
# a = 'hello wor ld'
# # aa = a.split()
# # print(aa)
# # print(''.join(aa))
# print(''.join(a.split()))
# list1 = ['122','2333','3444',' ','422',' ',' ','54',' ']
# for x in list1:
# for i,j in enumerate(list1):
# print(i,j)
# if x == ' ':
# list1.remove(' ')
# print(list1)
# print('***************************************')
# print(list1)
# 去除列表中的重複元素
# 方法一: 對列表進行怕羞,從頭到尾進行比較,遇到重複的元素就刪除,否則指標向右移動一位
#方法1,邏輯複雜,臨時變數儲存值消耗記憶體,返回結果破壞了原列表順序,效率最差
# def deleteDuplicatedElement(l):
# l.sort()
# length = len(l)
# firstItem = l[0]
# for x in range(1,length-1):
# # if x < length - 2:
# # if l[x] == l[x+1]:
# # l.remove(l[x])
# # return l
# currentItem = l[x]
# if firstItem == currentItem:
# l.remove(currentItem)
# else:
# firstItem = currentItem
# return l
# print(deleteDuplicatedElement(['d','d','1','2','1','4']))
# def deleteDuplicatedElement(l):
# l.sort()
# length = len(l)
# lastItem = l[length-1]
# for x in range(length-2,-1,-1):
# currentItem = l[x]
# if lastItem == currentItem:
# l.remove(currentItem)
# else:
# lastItem = currentItem
# return l
# print(deleteDuplicatedElement(['python','r','r','g','g','g','t','y','g','n']))
# 方法二:設一臨時列表儲存結果,從頭遍歷原列表,如臨時列表中沒有當前元素則追加:
#方法2,直接呼叫append方法原處修改列表,邏輯清晰,效率次之
# def deleteDuplicatedElement(l):
# ll = []
# for x in l:
# if x in ll:
# continue
# else:
# ll.append(x)
# return ll
# print(deleteDuplicatedElement(['python','r','r','g','g','g','t','y','g','n']))
# 方法三:利用Python中集合元素唯一性特點,將列表轉換為集合,然後轉換為列表輸出即可
#方法3,極度簡潔,使用python原生方法效率最高,但列表原有順序被打亂
# def deleteDuplicatedElement(l):
# return sorted(list(set(l)),key=l.index)
# print(deleteDuplicatedElement(['python','r','r','g','g','g','t','y','g','n']))