我想洗掉我嘗試過的每個字串的最后一個逗號 s.rstrip 它僅適用于最后一個逗號
l = [['kjkng,rkggg,,,,,,,,,,', 'aaaa, , ', 'sssssss, , , '],['rjfjrejn lelkkd ,,,,,'], ['fffff , , ,'],[], .....]]
我想要結果為
l = [['kjkng,rkggg', 'aaaa', 'sssssss'],['rjfjrejn lelkkd'],['fffff'],[], .....]]
uj5u.com熱心網友回復:
讓我們看看這些案例:
- 字串串列
在這種情況下,最簡單的解決方案是執行 alist comprehension并使用str.rstrip(", ")洗掉字串末尾的逗號和空格。
l = [x.rstrip(", ") for x in l]
- 嵌套的字串串列
在這種情況下,舉例說明,你可以做一個recursive方式和linear方式
- 遞回的
做一個函式,它需要 alist并回傳另一個list,就像代碼中一樣:
def remcommas(lst:list):
final = []
for x in lst:
if x.isinstance(x,list):
x = remcommas(x)
final.append(x)
return final
如果您的串列是嵌套的,則此方法有效,但這不是最佳解決方案。
- 線性的
這仍將使用str.rstrip()和使用串列串列,但它有一個約束:
- 這將適用于具有您所擁有的結構的串列 (
list[list[str]])
但這可能是我現在能想到的最好的,用途list comprehension:
final = [x.rstrip(", ") for x in lst for lst in l]
uj5u.com熱心網友回復:
試試這個,因為你有一個嵌套串列:
>>> [[b.rstrip(', ') for b in a] for a in l]
[['kjkng,rkggg', 'aaaa', 'sssssss'], ['rjfjrejn lelkkd'], ['fffff']]
uj5u.com熱心網友回復:
res = []
for elist in l:
ires = []
for elm in elist:
ires.append(elm.replace(',','')
res.append(ires)
uj5u.com熱心網友回復:
這會做到的。
text = [['kjkng,rkggg,,,,,,', 'aaaa, , , ,', 'sssssss , , , , ,'],
['rjfjrejn lelkkd,,,,,,,'], ['fffff, , , , ,']]
text = [[new_value.rstrip(' , ') for new_value in j] for j in text]
print(text
[['kjkng,rkggg', 'aaaa', 'sssssss'], ['rjfjrejn lelkkd'], ['fffff']]
uj5u.com熱心網友回復:
import re
l = [['kjkng,rkggg,,,,,,,,,,', 'aaaa, , ', 'sssssss, , , '],['rjfjrejn lelkkd ,,,,,'], ['fffff , , ,'],[]]
regex = re.compile(r"[, ]*$", re.IGNORECASE)
res = []
for arr in l:
res.append([])
for s in arr:
res[-1].append(regex.sub('',s))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/497496.html
上一篇:使用numpy從陣列中洗掉字串
