我遇到了這個問題,我無意中發現了這個問題。
問題是這樣的。
我有這樣的列表:有沒有一種方法可以找到給定的整個部分給定的浮點數列表的最大小數部分?
L = [2.1, 2.2, 2.3, 2.4, 2.5, 3.1, 3.2, 3.3, 3.4, 4.1, 4.2, 4.3, 4.4, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 6.1, 6.2, 6.3, 6.4, 6.5, 7.1, 7.2, 7.3, 7.4, 7.5, 8.1, 8.2, 8.3, 8.4, 8.5, 9.1, 9.2, 9.3, 9.4, 9.5, 10.1, 10.2, 10.3, 10.4, 10.5, 11.1, 11.2, 11.3, 11.4, 11.5, 12.1, 12.2, 12.3, 12.4, 12.5]
必需:
ANS = [[2,5],[3,4],[4,4],...]
即整數和最大小數部分。
我們該怎麼做?
到目前爲止,我已經試過這樣:
# Imports
import numpy as np
import math
L = [2.1, 2.2, 2.3, 2.4, 2.5, 3.1, 3.2, 3.3, 3.4, 4.1, 4.2, 4.3, 4.4, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 6.1, 6.2, 6.3, 6.4, 6.5, 7.1, 7.2, 7.3, 7.4, 7.5, 8.1, 8.2, 8.3, 8.4, 8.5, 9.1, 9.2, 9.3, 9.4, 9.5, 10.1, 10.2, 10.3, 10.4, 10.5, 11.1, 11.2, 11.3, 11.4, 11.5, 12.1, 12.2, 12.3, 12.4, 12.5]
whole = [ int(str(x).split(".")[0]) for x in L]
frac = [ int(str(x).split(".")[-1]) for x in L]
wf = [[w,f] for w,f in zip(whole,frac)]
wset = list(set(whole))
print(whole)
print(frac)
print(wf)
print(wset)
它[R然而,如果我在vale以上的for循環中添加另一條打印線,那麼它並不是很出色。append line:print(key,list(group))IT GIVES VALUE ERROR:ValueError:max()arg是一個空序列 –
'group'在這種情況下是一個生成器,所以一旦你調用它,它就必須被重新創建,例如試試這個:'foo =(e for e in range(10)) for i in foo: print(i)'然後不重新運行'foo'賦值再次運行for循環,不會打印任何內容。你可以通過將組變量重新分配給一個列表來解決這個問題:'group = list(group) print(group)'然而除非必要,否則這將不會有效 – johnchase