2017-05-13 55 views
0

如果我有一組:如何從一組中刪除數字字符串?

{'NYC', 'Ames', 'LA', 'Houston', '500', '1000', '3000', 
'SanFrancisco', '300', '200', 'Detroit', 'Austin'} 

我怎樣才能把集中的所有數字串?

要清楚我想要這個:

{'NYC', 'Ames', 'LA', 'Houston', 'SanFrancisco', 'Detroit', 'Austin'} 

回答

5

爲了擴大的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'} 
2

可以使用string.isdigit()來檢查一個字符串是否是一個數字或不:

new_set = set() 
for elem in old_set: 
    if not elem.isdigit(): 
     new_set.add(elem) 
1

做到這一點:

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', '休斯敦', '三藩市', '底特律', '奧斯汀'}

+0

我會解決這個問題,非常感謝你 –

1

篩選出來的數字,並創建一套新:

set_new = set(filter(lambda e: not e.isdigit(), set_old))