我有格式爲"1-3 6:10-11 7-9"
的字符串,並從它們中創建數字集合,如下所示{1,2,3,6,10,11,7,8,9}
。Python - 從字符串創建集合
有關創建從號碼的範圍內設定,我有以下代碼:
def create_set(src):
lset = []
if len(src) > 0:
pos = src.find('-')
if pos != -1:
first = int(src[:pos])
last = int(src[pos+1:])
else:
return [int(src)] # Only one number
for j in range (first, last+1):
lset.append(j)
return set(lset)
但我無法弄清楚如何正確對待「:」當它出現的字符串中。有人能幫我嗎?
在此先感謝!
編輯:順便說一下,有沒有更緊湊的方式來解析這樣的字符串,也許使用正則表達式?
我會忍不住用正則表達式解析它 - 我不是專家,但是這將是我會做的方式 - 因爲「語法」似乎是有規律的。 –
@xnx我的想法正確 –
爲什麼6有一個冒號? –