本文目錄一覽:
- 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’]
這你看一下,如果有看不懂的我再跟你說一下,關鍵是思路
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/311234.html