iT邦幫忙

0

python 一問

  • 分享至 

  • xImage
if isinstance(val, float):
        modval = float("{:.4f}".format(modval))
    elif isinstance(val,list):
        modval = ["%.4f" % elem for elem in val]

大家好, 想問一下如果要在
["%.4f" % elem for elem in val]

"%.4f" % elem 這個check if elem 是float才"%.4f"

可以怎樣寫,謝謝.

diu7me iT邦新手 3 級 ‧ 2021-11-03 11:10:13 檢舉
原來是list comprehension
diu7me iT邦新手 3 級 ‧ 2021-11-03 11:20:39 檢舉
["%.4f" % elem for elem in val if type(elem) == float]
froce iT邦大師 1 級 ‧ 2021-11-03 11:51:27 檢舉
同上面,type改 isinstance(elem, float)也行。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
tryit
iT邦研究生 4 級 ‧ 2021-11-03 11:36:54

首先你要先檢驗是否為float()
我記得python是沒有檢驗這個的方法,必須要自己寫。

def is_float(num):
    #這邊就先自己想囉
    return bool

然後再把list comprehension裡稍微改變一下

modval = [f"{elem:.4f}" if is_float(elem) else f"{elem:1}"  for elem in val]

我要發表回答

立即登入回答