如果我有一組:如何從一組中刪除數字字符串?
{'NYC', 'Ames', 'LA', 'Houston', '500', '1000', '3000',
'SanFrancisco', '300', '200', 'Detroit', 'Austin'}
我怎樣才能把集中的所有數字串?
要清楚我想要這個:
{'NYC', 'Ames', 'LA', 'Houston', 'SanFrancisco', 'Detroit', 'Austin'}
如果我有一組:如何從一組中刪除數字字符串?
{'NYC', 'Ames', 'LA', 'Houston', '500', '1000', '3000',
'SanFrancisco', '300', '200', 'Detroit', 'Austin'}
我怎樣才能把集中的所有數字串?
要清楚我想要這個:
{'NYC', 'Ames', 'LA', 'Houston', 'SanFrancisco', 'Detroit', 'Austin'}
爲了擴大的Meccano的答案,你也可以使用一套理解使用.isdigit
海峽方法來縮短代碼:
old_set = {'NYC', 'Ames', 'LA', 'Houston', '500', '1000', '3000',
'SanFrancisco', '300', '200', 'Detroit', 'Austin'}
new_set = {elem for elem in old_set if not elem.isdigit()}
print(new_set)
# output:
# {'NYC', 'Ames', 'LA', 'Houston', 'SanFrancisco', 'Detroit', 'Austin'}
可以使用string.isdigit()來檢查一個字符串是否是一個數字或不:
new_set = set()
for elem in old_set:
if not elem.isdigit():
new_set.add(elem)
做到這一點:
l = {'NYC', 'Ames', 'LA', 'Houston', '500', '1000', '3000',
'SanFrancisco', '300', '200', 'Detroit', 'Austin34'}
l = re.sub("^\d+\s|\s\d+\s|\s\d+$", " ", l)
這也刪除單詞內的數字
{ 'NYC', '艾姆斯', 'LA', '休斯敦', '三藩市', '底特律', '奧斯汀'}
篩選出來的數字,並創建一套新:
set_new = set(filter(lambda e: not e.isdigit(), set_old))
我會解決這個問題,非常感謝你 –