第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Python 3 查找給定范圍內的元素計數?

使用 Python 3 查找給定范圍內的元素計數?

Smart貓小萌 2023-09-05 15:45:57
我有一個字符串,包含一系列數字。我需要知道該范圍內有多少元素。棘手的部分是,它可能是連字符分隔的數字范圍或單個逗號分隔數字的組合。一些具有預期計數的示例:"1-10,12,14,16" : 13  "8,14,0-5" : 8  "0-32" : 33  "1-5,10-15" : 11給定的值不會有任何重疊,因此我不必考慮這一點。(例如,您不會看到“1-10,5,6”)這似乎是Python應該能夠輕松完成的事情,但我不知道如何以Pythonic方式做到這一點。我怎樣才能完成這個任務?我目前擁有的:count = 0range = "1,2,3-4"for a_range in ranges:    if "-" in a_range:        first,last = a_range.split("-")        amt = int(last) - int(first) +1    else:        amt = 1    count += amtprint(count)
查看完整描述

3 回答

?
aluckdog

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


查看完整回答
反對 回復 2023-09-05
?
搖曳的薔薇

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

只需以不同的時間間隔分割并檢查值的計數即可。


查看完整回答
反對 回復 2023-09-05
?
PIPIONE

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)))


查看完整回答
反對 回復 2023-09-05
  • 3 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號