3 回答

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
您的條件只是寫(xiě)錯(cuò)了 - 它正在選擇第二個(gè)元素為的子列表
>= user_input + 0.6(計(jì)算結(jié)果為>= 4.0,但您希望第二個(gè)元素為between 3.4 and 4.0。所以我相信您需要做的就是像這樣更改它:
for i in range(0, len(mylists)):
if user_input <= mylists[i][1] <= user_input + 0.6:
new_list.append(mylists[i])
希望對(duì)您有所幫助,編碼愉快!

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
您是否收到錯(cuò)誤或只是意外的輸出?
也許你可以試試:
new_list = list(filter(lambda x: user_input<= x[1] <= user_input + 0.6 , mylists))

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
你可以使用這個(gè):
import re
mylists = [[['CS105', 'ENG101', 'MATH101', 'GER'], 3.4207362518089726, 0.2808766238976195], [['CS105', 'ENG101', 'GER', 'GER'], 2.9687393162393163, 0.3408964829117446]]
user_input = 3.4
st = str(user_input) #transform input from user to string
denom = '1'+len(st.split('.')[-1])*'0' #get how much decimals st have and create denominator to the decimal part
decimal_part = 1- int(st.split('.')[-1])/int(denom) #create decimal numbers to reach upper bound
new_list = []
for i in range(0, len(mylists)):
if user_input <= mylists[i][1] <= user_input + decimal_part:
new_list.append(mylists[i])
另一種方法是:
import numpy as np
mylists = [[['CS105', 'ENG101', 'MATH101', 'GER'], 3.4207362518089726, 0.2808766238976195], [['CS105', 'ENG101', 'GER', 'GER'], 2.9687393162393163, 0.3408964829117446]]
user_input = 3.4
new_list = []
for i in range(0, len(mylists)):
if user_input <= mylists[i][1] <= np.ceil(user_input):
new_list.append(mylists[i])
添加回答
舉報(bào)