我可以有效地從中洗掉單個字符source_string,但是如何包含不洗掉串列中單個字符的條件compass?
compass = ['N', 'E', 'S', 'W']
source_string = 'Florida W Campus A B CD'
' '.join([x for x in source_string.split() if (len(x)>1)])
>>> 'Florida Campus CD'
期望的結果:
>>> 'Florida W Campus'
編輯:我需要在字串“Florida W Campus AB CD”中添加多個字符
uj5u.com熱心網友回復:
嘗試:
>>> ' '.join([x for x in source_string.split() if (len(x)>1) or x in compass])
'Florida W Campus CD'
uj5u.com熱心網友回復:
您可以使用:
compass = ['N', 'E', 'S', 'W']
addl_strs = ['A', 'B', 'CD']
keep_strs = set(compass).union(set(addl_strs))
' '.join(list(filter(lambda x:len(x) > 1 if x not in keep_strs else x, source_string.split())))
如果您想使用另一個串列并形成一個集合以查看它是否存在以檢查長度,您可以添加更多字串。
uj5u.com熱心網友回復:
compass = ['N', 'E', 'S', 'W']
source_string = 'Florida W Campus A B'
' '.join([x for x in source_string.split() if x in compass or (len(x)>1)])
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/476500.html
上一篇:獲取幾個變數的最頻繁值
