本文目录一览:
- 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 = '\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()做映射
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']
这你看一下,如果有看不懂的我再跟你说一下,关键是思路