您的位置:首页 > 编程语言 > Python开发

Python 列表去重去除空字符

2017-12-26 15:29 288 查看
# x = ['c b a',"e d f"]

# 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(
4000
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']))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: