我想将一个数字(dist)与排序列表(my list)中的每个元素进行比较。你知道吗
如果数字小于myList中的第一个元素,那么我必须继续查找dist的正确位置,删除myList中的第一个元素并移动列表。你知道吗
我现在的主要问题是dist小于我列表中第一个元素的情况。索引超出范围。。。你知道吗
dist = 10
mylist = [40, 30, 20, 15] # this is a sorted list
for j in range(0, len(mylist)):
if mylist[j] < dist & dist> mylist[j+1]:
print (mylist[j], '<' ,dist, '>', mylist[j+1])
#drop 40
#shift the list so that is becomes: [30,20, 15,10]
IIUC,您想在它的正确位置插入
dist
,然后去掉第一个元素。这很好,但你有一些问题。最主要的是你的情况,我不是说&
。您需要确保dist
大于当前值,但小于下一个值。你可以这样做:您还必须运行到小于
len(mylist)
的一个,以避免索引越界。你知道吗您可以使用的另一个技巧是
for...else
,它适用于dist
未插入其他任何位置的拐角情况。你知道吗简而言之,试试这个:
或者,您可以从1运行到
len(mylist)
,并比较检查mylist[j - 1] < dist < mylist[j]
。你知道吗相关问题 更多 >
编程相关推荐