亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在數字范圍內四舍五入數字

在數字范圍內四舍五入數字

慕村9548890 2021-04-05 21:18:16
我試圖弄清楚如何處理我收到的數字范圍的變化。我已經從數據幀中編譯了它們,并嘗試以100-200 / 200-300 / 300-400格式獲取所有范圍。有時將輸入為300.400,而不是300-400,有時將輸入為300.5-400.5。如果可能的話,我還要考慮一下將它們輸入為300.5.400.5的情況,因為有人可能會這樣做,因為它是如此的瘋狂。我想我可能應該嘗試計劃在它們之間沒有出現“-”的任何字符。為了簡單起見,我想用小數點后的數字四舍五入,并用非“-”字符分隔范圍,而不用小數點代替句點。打擾一下我糟糕的代碼:num_range = [p.replace(' ', '') for p in num_dirty]num_range = [p.replace(';', ' ') for p in num_dirty]num_range = [p.replace('.', '-') for p in num_dirty]num_clean = []for r in num_dirty:    num_clean.append(r.split('/'))num_clean = list(itertools.chain.from_iterable(num_clean))num_clean = ','.join(num_clean)我還使用在這里找到的此功能來列出頻率范圍內的所有數字,以便刪除所有重復的范圍:num_lines = num_clean.split(',')num_numbers = []i = 0for line in num_lines:    if line == '':        continue    elif '-' in line:        t = line.split('-')        num_numbers += range(int(t[0]), int(t[1]) + 1)    else:        num_numbers.append(int(line))
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

我在您帖子的前兩段中運行了以下正則表達式


import re

from math import ceil


pat = re.compile(r'(\d+(?:\.\d+)?)\D(\d+(?:\.\d+)?)')

l = [(ceil(float(a)), ceil(float(b))) for a, b in pat.findall(your_post)]

print(l)

# [(100, 200), (200, 300), (300, 400), (300, 400), (300, 400), (301, 401), (301, 401)]

從那里您可以生成格式化的字符串,但是您需要


for pair in l:

    print("{}-{}".format(*pair))


查看完整回答
反對 回復 2021-04-09
  • 1 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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