if index % 50 == 0:
compare(target_item_list,target_item_list3)
print(target_item_list3)
[0.108, 0.108, 0.111, 0.11, 0.108, 0.109, 0.109, 0.115, 0.113, 0.109, 0.11, 0.11, 0.109, 0.108, 0.113, 0.111, 0.254, 0.255, 0.923, 0.108, 0.108, 0.108, 0.108, 0.108, 0.109, 0.109, 0.108, 0.111, 0.111, 0.109, 0.108, 0.108, 0.108, 0.111, 0.11, 0.108, 0.109, 0.109, 0.115, 0.113, 0.109, 0.11, 0.11, 0.109, 0.108, 0.113, 0.111, 0.254, 0.255, 0.923, 0.108, 0.108, 0.108, 0.108, 0.108, 0.109, 0.109, 0.108, 0.111, 0.111, 0.109, 0.108, 0.11, 0.112, 0.108, 0.111, 0.111, 0.109, 0.109, 0.252, 0.251, 0.253, 0.251, 0.114, 0.109, 0.128, 0.143, 0.153, 0.149, 0.147, 0.141, 0.133, 0.113, 0.116, 0.109]
但當我加入
compare(target_item_list,target_item_list3)
max_item = max(target_item_list3)
max_item_idx = target_item_list3.index(max_item)
target_item_list2.append(target_item_list3[max_item_idx-1:max_item_idx+3])
想找最他時他卻告訴我
max() arg is an empty sequence
為什麼 裡面不是已經放入大於0.108了嗎
def compare(list1,list2):
for x in list1:
if x < 0.108: #這段改成>0.108 卻可以正常不會出現max() arg is an empty sequence但我要的並不是小於0.108的
continue
list2.append(x)
是我哪個環節有問題嗎?
因為看不懂你compare裡面幹嘛要兩個list,尤其是list2。
如果你list2是設個全域變數的話,最好不要這麼搞。
建議等你函數得到結果後,再對全域變數做變動。
只是要過濾出大於0.108的話很簡單,一行就解決了。
data = [0.108, 0.201, 0.001]
data_gt = [x for x in data if x > 0.108]
list1 = [0.108, 0.108, 0.111, 0.11, 0.108, 0.109, 0.109, 0.115, 0.113, 0.109,
0.11, 0.11, 0.109, 0.108, 0.113, 0.111, 0.254, 0.255, 0.923, 0.108, 0.108, 0.108,
0.108, 0.108, 0.109, 0.109, 0.108, 0.111, 0.111, 0.109, 0.108, 0.108, 0.108, 0.111,
0.11, 0.108, 0.109, 0.109, 0.115, 0.113, 0.109, 0.11, 0.11, 0.109, 0.108, 0.113,
0.111, 0.254, 0.255, 0.923, 0.108, 0.108, 0.108, 0.108, 0.108, 0.109, 0.109,
0.108, 0.111, 0.111, 0.109, 0.108, 0.11, 0.112, 0.108, 0.111, 0.111, 0.109,
0.109, 0.252, 0.251, 0.253, 0.251, 0.114, 0.109, 0.128, 0.143, 0.153, 0.149,
0.147, 0.141, 0.133, 0.113, 0.116, 0.109]
list2 = list(filter(lambda x: x < 0.108, list1))
list3 = list(filter(lambda x: x >= 0.108, list1))
print(len(list1), len(list2), len(list3))
print(list2)
print(list1 == list3)