首页 > 编程知识 正文

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

时间:2023-12-02 21:07:32 阅读:311519 作者:ENVK

本文目录一览:

  • 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()

123456789101112131415

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

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

123456

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

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

1234567891011

#!/usr/bin/python3 # 去除字符串中相同的字符s = 'tabct123tisk'print(s.replace('t', '')) import re# 去除rnt字符s = 'rnabct123nxyz'print(re.sub('[rnt]', '', s))

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

1234567

#!/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字符中音调

12345678910111213141516171819202122232425

#!/usr/bin/python3 import sysimport unicodedatas = "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"remap = { # ord返回ascii值 ord('t'): '', ord('f'): '', ord('r'): None }# 去除t, f, ra = 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']

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。