Python中字符串和列表去重方法总结

目录
  • 字符串去重
    • 1、直接遍历字符串的方式
    • 2、遍历去重的另一种方式
    • 3、将字符串转换成列表的方式(list sort)
    • 4、根据字符串下标,判断子集
    • 5、使用 ', '.join(L) ,将列表拼接成我们想要的字符串
  • 列表去重
    • 1、利用for循环的方式
    • 2、利用set()函数
    • 3、利用sort()排序
    • 4、利用sort()排序后,迭代
    • 5、巧用字典

字符串去重

1、直接遍历字符串的方式

# *_* coding : UTF-8 *_*

​​​​​​​name='王李张李陈王杨张吴周王刘赵黄吴杨'
newname=''
for char in name:
    if char not in newname:
        newname+=char
print (newname)

输出:

王李张陈杨吴周刘赵黄

2、遍历去重的另一种方式

# *_* coding : UTF-8 *_*

​​​​​​​name='王李张李陈王杨张吴周王刘赵黄吴杨'
newname=''
i = len(name)-1
while True:
    if i >=0:
        if name[i] not in newname:
            newname+=(name[i])
        i-=1
    else:
        break
print (newname)

输出:

杨吴黄赵刘王周张陈李

3、将字符串转换成列表的方式(list sort)

# *_* coding : UTF-8 *_*

​​​​​​​name = '王李张李陈王杨张吴周王刘赵黄吴杨'
myname = set(name)
print(myname)
newname = list(set(name))
print(''.join(newname))
newname.sort(key=name.index)
print(newname)
print(''.join(newname))

输出:

{'张', '黄', '刘', '杨', '吴', '周', '陈', '赵', '王', '李'}
张黄刘杨吴周陈赵王李
['王', '李', '张', '陈', '杨', '吴', '周', '刘', '赵', '黄']
王李张陈杨吴周刘赵黄

4、根据字符串下标,判断子集

# *_* coding : UTF-8 *_*

​​​​​​​name='王李张李陈王杨张吴周王刘赵黄吴杨'
l = len(name)        # 字符串下标总长度
for s in name:
    if name[0] in name[1:l]:
        name = name[1:l]
    else:
        name= name[1:l]+name[0]
print(name)

输出:

李陈张周王刘赵黄吴杨

5、使用 ', '.join(L) ,将列表拼接成我们想要的字符串

# *_* coding : UTF-8 *_*

name='王李张李陈王杨张吴周王刘赵黄吴杨'
zd={}.fromkeys(name)
mylist=list(zd.keys())
# mylist = list({}.fromkeys(name).keys())
print (''.join(mylist))

输出:

王李张陈杨吴周刘赵黄

列表去重

1、利用for循环的方式

# *_* coding : UTF-8 *_*

city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']
ncity = [] # 定义一个空列表
for item in city: # 遍历列表city
    if item not in ncity: # 如果item不在ncity,则添加到ncity
        ncity.append(item)
print (ncity)

输出:

['上海', '广州', '成都', '北京']

2、利用set()函数

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据。

# *_* coding : UTF-8 *_*

city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']
ncitx=list(set(city))
print(ncitx)

输出:

['广州', '成都', '上海', '北京']

3、利用sort()排序

# *_* coding : UTF-8 *_*

city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']

ncitx=list(set(city))
ncitx.sort( key=city.index)
print(ncitx)

输出:

['上海', '广州', '成都', '北京']

4、利用sort()排序后,迭代

# *_* coding : UTF-8 *_*

city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']
city.sort()
for x in city:
     while city.count(x)>1:
         del city[city.index(x)]

print(city)

输出:

['上海', '北京', '广州', '成都']

5、巧用字典

# *_* coding : UTF-8 *_*

city=['上海', '广州', '上海', '成都', '上海', '上海', '北京', '上海', '广州', '北京', '上海']
mylist = list({}.fromkeys(city).keys())  # fromkeys() 函数创建一个新字典,获取新字典的键(唯一值)
print (mylist)

输出:

['上海', '广州', '成都', '北京']

到此这篇关于Python中字符串和列表去重方法总结的文章就介绍到这了,更多相关Python去重内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python 利用内置set函数对字符串和列表进行去重的方法

    如下所示: # coding:utf8 __author__ = 'libingxian' __date = "20170415" # 由于数据类型set本身具有无序,唯一值的特性,可以用内置函数set对字符串和列表进行去重,挺方便的 str = "asdfasdlklfgklgjsdfjkjl" se = set(str) print se li = [1,"2",1,"2","abc","12

  • Python对字符串实现去重操作的方法示例

    前言 最近在工作经常会碰到对字符串进行去重操作,下面就给大家列出用Python如何处理的,话不多说了,来一起看看详细的介绍吧. 比如说,要拿下面的字符传去掉重复的AA, A(B,C) S = 'AA, BB, EE, DD, AA, A(B,C), CC, A(B,C)' 代码如下: 备注: 1. 用str.split(',')只能分隔逗号一种:如果涉及到多重分隔的话就需要使用re.split(',|:') 2. 原字符串以逗号分隔的,后面有一个或多个字符串,所以re.split(', | ')

  • python列表去重的5种常见方法实例

    目录 前言 一.使用for循环实现列表去重 二.使用列表推导式去重 三.使用集合转换函数set()实现列表去重 四.使用新建字典方式实现列表去重 五.删除列表中存在重复的数据 附:Python 二维数组元素去重 np.unique()函数的使用 总结 前言 列表去重在python实际运用中,十分常见,也是最基础的重点知识. 以下总结了5种常见的列表去重方法 一.使用for循环实现列表去重 此方法去重后,原顺序保持不变. # for循环实现列表去重 list1 = ['a', 'b', 1, 3,

  • Python实现嵌套列表去重方法示例

    发现问题 python嵌套列表大家应该都不陌生,但最近遇到了一个问题,这是工作中遇到的一个坑,首先看一下问题 raw_list = [["百度", "CPY"], ["京东", "CPY"], ["黄轩", "PN"], ["百度", "CPY"]] 列表嵌套了列表,并且有一个重复列表["百度", "CPY"

  • Python列表去重的几种方法整理

    请定义函数,将列表[10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1]中的重复元素除去,写出至少3种方法. 方法一:利用集合去重 list_1=[10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1] def func1(list_1): return list(set(list_1)) print('去重后的列表:',func1(list_1)) 方法二:利用for循环 list_2 = [10

  • Python 列表去重去除空字符的例子

    如下所示: # 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

  • Python中字符串和列表去重方法总结

    目录 字符串去重 1.直接遍历字符串的方式 2.遍历去重的另一种方式 3.将字符串转换成列表的方式(list sort) 4.根据字符串下标,判断子集 5.使用 ', '.join(L) ,将列表拼接成我们想要的字符串 列表去重 1.利用for循环的方式 2.利用set()函数 3.利用sort()排序 4.利用sort()排序后,迭代 5.巧用字典 字符串去重 1.直接遍历字符串的方式 # *_* coding : UTF-8 *_* ​​​​​​​name='王李张李陈王杨张吴周王刘赵黄吴杨

  • 在Python中字符串、列表、元组、字典之间的相互转换

    一.字符串(str) 字符串转换为列表 使用list()方法 str_1 = "1235" str_2 = 'zhangsan' str_3 = '''lisi''' tuple_1 = list(str_1) tuple_2 = list(str_2) tuple_3 = list(str_3) print(type(tuple_1)) print(type(tuple_2)) print(type(tuple_3)) print(tuple_1) print(tuple_2) pr

  • Python 中字符串拼接的多种方法

    python拼接字符串一般有以下几种方法: ①直接通过(+)操作符拼接 s = 'Hello'+' '+'World'+'!' print(s) 输出结果: Hello World! 使用这种方式进行字符串连接的操作效率低下,因为python中使用 + 拼接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当拼接字符串较多时自然会影响效率. ②通过str.join()方法拼接 strlist=['Hello',' ','World','!'] print(''.join(str

  • python 中字典嵌套列表的方法

    如下所示: >>> dict={} >>> dict['list']=[] >>> dict['list'].append([1,2,3,4]) >>> dict['list'].append([5,6,7]) >>> dict['list'].append([7,8,9,0,10]) 输出字典: >>> dict {'list': [[1, 2, 3, 4], [5, 6, 7], [7, 8,

  • Python中字符串对象语法分享

    目录 一.字符串的外观 1.字符串字面量 2.字符串与多行注释 3.字符串编码方式 二.字符串对象 1.str 2.str实现原理 3.str中的内置方法 4.字符串切片 前言:前面提到了Python中的数值型内置数据类型,接下来呢我们就着重介绍一下字符串类型.在Python中字符串是一个有序的字符集合,没有独立的字符数据类型,当字符串长度为1时就可以认为其是字符.Python的内置数据类型str用于字符串处理.str对象的值为字符系列字符串是不可变序列. 一.字符串的外观 1.字符串字面量 顾

  • 对python中两种列表元素去重函数性能的比较方法

    测试函数: 第一种:list的set函数 第二种:{}.fromkeys().keys() 测试代码: #!/usr/bin/python #-*- coding:utf-8 -*- import time import random l1 = [] leng = 10L for i in range(0,leng): temp = random.randint(1,10) l1.append(temp) print '测试列表长度为:',leng #first set last = time.

  • python中字符串String及其常见操作指南(方法、函数)

    目录 下标与切片 常见方法 查找 替换 分割 大小写格式化 对齐格式化 清除空白字符 检查 补充:16个常用函数 总结 注意:对字符串的所有操作,原始数据(即原字符串)不变 !(字符串是不可变类型) 对原字符串操作会返回一个操作后的数据, 可以使用变量去接受数据 ----------------------------------------------------------------------------------------------------------------------

  • 解决Python中字符串和数字拼接报错的方法

    前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # coding=utf8 str = '你的分数是:' num = 82 text = str+num+'分 | 琼台博客' print text 执行结果 直接报错:TypeError: cannot concatenate 'str' and 'int' objects 解决这个方法只有提前把num转换为字符串类型,可以使用bytes函数把int

  • 在python中只选取列表中某一纵列的方法

    如下所示: >>> a=random.randint(1,6,(5,3)) >>> a array([[5, 3, 1], [5, 5, 1], [5, 1, 3], [1, 4, 3], [5, 1, 2]]) >>> b=a.tolist() >>> b#选取b列表的前2列 [[5, 3, 1], [5, 5, 1], [5, 1, 3], [1, 4, 3], [5, 1, 2]] >>> c=mat(b) &

  • python中字符串数组逆序排列方法总结

    python中字符串数组如何逆序排列?下面给大家介绍几种方法: 1.数组倒序: 原始元素的倒序排列 (1)切片 >>> arr = [1,2,3,4,3,4]>>> print (arr[::-1])[4, 3, 4, 3, 2, 1] (2)reverse() >>> arr = [1,2,3,4,3,4]>>> arr.reverse()>>> print (arr)[4, 3, 4, 3, 2, 1] (3)r

随机推荐