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