3 回答

TA貢獻1847條經驗 獲得超7個贊
首先,我們定義要檢查的字符串并從 0 開始計數:
string = "1-10,12,14,16"
num_amount = 0
我們將用逗號分割字符串并獲取值列表
first_list = string.split(',')
然后,我們將在每個項目中搜索連字符分隔。如果沒有“-”,我們將在計數器中加一。如果有,我們減去數字并將其添加到計數器中
for i in first_list:
if i.find('-')>=0:
start_end = i.split('-')
addition = int(start_end[1]) - int(start_end[0]) + 1
num_amount += addition
else:
num_amount += 1

TA貢獻1793條經驗 獲得超6個贊
這將為您完成這項工作。但請從下次開始發(fā)布您的嘗試。
In [35]: val = "1-10,12,14,16"
In [50]: values = [int(i.split('-')[-1]) - int(i.split('-')[0]) +1 for i in val.split(',')]
In [53]: sum(values)
Out[53]: 13
只需以不同的時間間隔分割并檢查值的計數即可。

TA貢獻1829條經驗 獲得超9個贊
您可以嘗試(不要用作range變量名):
import re
re_bounds = re.compile(r"(\d+)(?:-(\d+))?")
ranges = "0-32"
print(sum((int(right) - int(left) + 1 if right else 1)
for left, right in re_bounds.findall(ranges)))
添加回答
舉報