python字符串去除重复字符(python字符串去除重复字符保留左边的)

发布时间:2022-11-09

本文目录一览:

1、python关于string(字符串)的问题: 删除重复的字母
2、Python如何去除字符串
3、python3.6对字符串去重复的问题
4、python 字符串 删除重复的数据
5、python去除文本中重复的字符串
6、python找出字符串的重复两次的字符

python关于string(字符串)的问题: 删除重复的字母

普通字符串可以用多种方式编码成unicode字符串,具体要看你究竟选择了哪种编码:

unicodestring = u"hello world"

将unicode转化为普通python字符串:"encode"

utf8string = unicodestring.encode("utf-8")
asciistring = unicodestring.encode("ascii")
isostring = unicodestring.encode("iso-8859-1")
utf16string = unicodestring.encode("utf-16")

将普通python字符串转化为unicode:"decode"

plainstring1 = unicode(utf8string, "utf-8")
plainstring2 = unicode(asciistring, "ascii")
plainstring3 = unicode(isostring, "iso-8859-1")
plainstring4 = unicode(utf16string, "utf-16")
assert plainstring1 == plainstring2 == plainstring3 == plainstring4

Python如何去除字符串

去掉两端字符串: strip(), rstrip(), lstrip()

#!/usr/bin/python3
s = ' -----abc123++++ '
# 删除两边空字符
print(s.strip())
# 删除左边空字符
print(s.rstrip())
# 删除右边空字符
print(s.lstrip())
# 删除两边 - + 和空字符
print(s.strip().strip('-+'))

删除单个固定位置字符: 切片 + 拼接

#!/usr/bin/python3
s = 'abc:123'
# 字符串拼接方式去除冒号
new_s = s[:3] + s[4:]
print(new_s)

删除任意位置字符同时删除多种不同字符:replace(), re.sub()

#!/usr/bin/python3
# 去除字符串中相同的字符
s = '\tabc\t123\tisk'
print(s.replace('\t', ''))
import re
# 去除\r\n\t字符
s = '\r\nabc\t123\nxyz'
print(re.sub('[\r\n\t]', '', s))

同时删除多种不同字符:translate() py3中为str.maketrans()做映射

#!/usr/bin/python3
s = 'abc123xyz'
# a _ x, b_ y, c_ z,字符映射加密
print(str.maketrans('abcxyz', 'xyzabc'))
# translate把其转换成字符串
print(s.translate(str.maketrans('abcxyz', 'xyzabc')))

去掉unicode字符中音调

#!/usr/bin/python3
import sys
import unicodedata
s = "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"
remap = {
    ord('\t'): '',
    ord('\f'): '',
    ord('\r'): None
}
# 去除\t, \f, \r
a = s.translate(remap)
# 通过使用dict.fromkeys() 方法构造一个字典,每个Unicode 和音符作为键,对于的值全部为None
# 然后使用unicodedata.normalize() 将原始输入标准化为分解形式字符
# sys.maxunicode : 给出最大Unicode代码点的值的整数,即1114111(十六进制的0x10FFFF)。
# unicodedata.combining:将分配给字符chr的规范组合类作为整数返回。 如果未定义组合类,则返回0。
cmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining(chr(c)))
# 此部分建议拆分开来理解
b = unicodedata.normalize('NFD', a)
# 调用translate 函数删除所有重音符
print(b.translate(cmb_chrs))

python3.6对字符串去重复的问题

你的算法基本已经是对的了。只是判断再改一下就行了。以下是修改的代码。

l1 = list(a)
l2 = []
for i in l1:
    if not i.upper() in l2 and not i.lower() in i2:
        l2.append(i)
l3 = ''.join(l2)

这样就行了,多说一句,对于字符串,本身就是可以迭代的,所以l1=list(a)这句其实是多余的。修改的地方就是在于判断i的大小写是不是都不在数组里面,都不在就把i加到数组里面这样就行了。如果只是去重,两句话:

seta = set(a)
l3 = ''.join(seta)

就行了。不明白可追问。

python 字符串 删除重复的数据

可以改变下思路,减少循环次数: list转为set,然后与下找到相同值,接着再和str2循环in的remove掉;或者set后直接减。 如果实在太多(超过1w个字符)另外一个思路是用线程,即对两个list切片,然后多线程处理.

python去除文本中重复的字符串

你的数据都是一行一行的吗? 是的话这样试试

input = open("a.txt", "r").read()
output = open("b.txt", "w+")
patterns = []
for line in input.split("\n"):
    if line not in patterns:
        print line
        patterns.append(line + "\n")
for pattern in patterns:
    output.write(pattern)
output.close()

测试了下满足你的输入输出

python找出字符串的重复两次的字符

a = int(input('请输入'))
list = []
sum = []
for i in range(a):
    b = input('请输入数据')
    list.append(b)
for i in range(a):  # 这个是为了循环多次,保证count2的数值全部取出来,因为在
    for i in list:
        if list.count(i) > 2:  # 举个例子:1,3,3,4,5则在这里得出的list为3,3,5,因为 count2的
            list.remove(i)  # 数有1,4,5,remove()删除的是该条件下的第一个符合该条件 的 值,所以5
        else:  # 删除不了,所以要循环多次
            pass
for i in list:
    sum.append(i)
for i in sum:
    for j in sum:
        if i == j:
            sum.remove(i)
        else:
            print('没有重复的值')
print(sum)

运行结果为:

请输入5
请输入数据1
请输入数据3
请输入数据3
请输入数据5
请输入数据2
['3']

这你看一下,如果有看不懂的我再跟你说一下,关键是思路