我想做一個改變,如果randomList資料連續三次產生0的值,那么它將在接下來的20個資料中把randomList的值改為1,下面是我做的一個隨機程式的例子。
import random
randomlist = []
for i in range(0,100)。
n = random.randint(1,20)
if n > 10 :
randomlist.append('0')
else :
randomlist.append('1')
print(隨機串列)
很抱歉,我對資料進行了修改,以使其更容易理解我的問題。
dataList = [4, 9, 10, 12, 5, 6, 15, 16, 8, 18, 20, 21, 1, 3, 5, 6, 8, 15, 13, 22, 25, 1, 3, 11, 5, 18, 24, 25, 23, 19, 14, 6, 9, 3, 20, 3, 1, 20]
結果=[]
for i in dataList:
if i > 10 :
result.append('0')
else :
result.append('1')
下面是結果
['1'/span>, '1'/span>, '1'/span>, '0', '1', '1', '0', '0', '1', '0', '0', '0', '1', '1', '1', '1', '1',。'0', '0', '0', '1', '1'。'0', '1', '0', '0',。'0', '0', '0', '1', '1', '1', '0', '1', '1', '0']
期望的結果
['1'/span>, '1'/span>, '1'/span>, '0', '1', '1', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '1', '0', '1', '1', '0']
uj5u.com熱心網友回復:
如果我沒有理解錯的話,你想在你的串列中添加20個零,如果之前的3個元素是零的話。在這里,我檢查了最后三個元素,并添加了20次零,然后傳遞下一個20次迭代。
dataList = [4, 9, 10, 12, 5, 6, 15, 16, 8, 18, 20, 21, 1, 3, 5, 6, 8, 15, 13, 22, 25, 1, 3, 11, 5, 18, 24, 25, 23, 19, 14, 6, 9, 3, 20, 3, 1, 20]
結果=[]
one_before = now = None
i = 0 0
for item in dataList:
try:
if dataList[i] > 10 :
result.append('0')
else :
result.append('1')
except:
break。
two_before = one_before # the two element before the last element.
one_before = now # 最后一個元素之前的一個元素。
now = result[-1] # 最后一個元素的值。
zero_list = ['0']*20 # List containing 20 zeros to append result
if now=='0/span> and one_before=='0'/span> and two_before=='0'/span>。 #檢查最后三個元素是否為0。
result.extend(zero_list) # 添加20個零: i = i 0 21 # 通過20次迭代
else:
i = i 1 # Pass to next iterationprint(result)
uj5u.com熱心網友回復:
下面是另一個例子,可能會有幫助。 結果根據第一條規則進行轉換(> 10或不) 然后我們遍歷串列,只要我們有三個0("000"),我們就用 "0 "改變接下來的20個專案。如果在dataList的末尾,你發現了另一個0的序列,那么我們就把這些值改到串列的末尾(保持dataList的原始大小)。
dataList = [4, 9, 10, 12, 5, 6, 15, 16, 8, 18, 20, 21, 1, 3, 5, 6, 8, 15, 13, 22, 25, 1, 3, 11, 5, 18, 24, 25, 23, 19, 14, 6, 9, 3, 20, 3, 1, 20]
result=['0' if x > 10 else '1' for x in dataList ]
print(result)
size, i = len(dataList), 2.
while i<size:
if result[i] result[i-1] result[i-2] == "000" :
NumberOf0= min(20, size - i-1)
for j in range(1 NumberOf0)。
result[i j] = '0'/span>
i =j 2: 結果[i j]='0
i =1
print(結果)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/323159.html
標籤:
