因此,我正在處理未知長度的列表。我需要把這份清單分成四部分。根據百分比將列表分成四部分,即使列表不能被10整除。Python
第一部分=第一20中的列表的%
部分從20%至40%的列表的
部分從列表
部分的40%至80%3 = 2 =四個=從80%到100%的名單。
現在這個問題是,如果列表少於10個元素,我的列表中的一些將是空的。我的問題是如何避免這個問題。
這是劇本我現在有:
x = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"]
twentyPercentOne = len(x) * 0.2
twentyPercentTwo = len(x) * 0.4
fourtyPercentThree = len(x) * 0.8
i = 0
j = 2
m = []
while j < (twentyPercentOne + 1):
m.append(x[i:j])
i = (i + 2)
j = (j + 2)
h = []
while j < (twentyPercentTwo + 1):
h.append(x[i:j])
i = (i + 2)
j = (j + 2)
l = []
while j < (fourtyPercentThree + 1):
l.append(x[i:j])
i = (i + 2)
j = (j + 2)
t = x[i:len(x)]
輸出:
[['one', 'two']]
[['three', 'four']]
[['five', 'six'], ['seven', 'eight']]
['nine', 'ten']
輸出如果列表少於10長度: X = [ 「一」,「二「,」三「,」四「,」五「,」六「,」七「]
[['one', 'two']]
[]
[['three', 'four'], ['five', 'six']]
['seven']
有人知道如何做這個?我知道它更像是一個數學問題,而不是Python問題,但我不知道如何去做,並且一直在爲它工作好幾天。我將不勝感激任何幫助。
感謝
可悲的是我沒有安裝numpy。我不明白你的percentage_split函數。它不會返回任何東西,我不知道如何返回我應該返回來得到我需要的分裂... – Adilicious
你應該安裝和學習numpy,這是非常有用的。第一個函數是一個生成器函數,如果你想做任何嚴肅的(或有趣的,簡單而高效的)Python編程,你也應該瞭解它們http://www.python.org/dev/peps/pep-0255/ http ://www.ibm.com/developerworks/library/l-pycon/index.html – fortran
我很想做到這一點(並可能在家裏做某些事情),但我在使用python的系統上這樣做2。7,不能以任何方式改變:( – Adilicious