while循环python的范围_python-无法在while循环中从列表中排除一定范围内的项目
所以我發(fā)布了一個問題before,但是它過于簡化了,正確地被標(biāo)記為重復(fù).我現(xiàn)在將更詳細(xì)地發(fā)布我的問題,以便希望可以解決我的問題.簡而言之如下:
我有兩個列表:a = [10.0,20.0,25.0,40.0]和b = [1.0,10.0,15.0,20.0,30.0,100.0]
使用列表推導(dǎo),我想從b中排除a中指定的元素范圍.也就是說:從b中刪除10.0和20.0之間以及25.0和40.0之間的所有元素.這是我嘗試過的:
kk = 0
while kk < len(a):
up_lim = a[kk] #upper limit
dwn_lim = a[kk+1] #lower limit
x = [b[y] for y in range(len(b)) if (b[y]up_lim)] #This line produces correct result if done outside of a while loop. Somehow fails in while loop.
b = list(x) #update the old list with the new&reduced list
kk += 2 #update counter
我期望結(jié)果x = [1.0,100.0],但我得到x = [1.0,10.0,15.0,20.0,30.0,100.0]
實際上,如果我在while循環(huán)之外進(jìn)行操作,則具有列表理解的關(guān)鍵行會起作用(當(dāng)然,這是沒有用的,因為列表’a’的大小可能是任意的,這就是我使用while循環(huán)的原因).
所以問題是:while循環(huán)如何以及為什么阻止列表理解正確發(fā)生?
總結(jié)
以上是生活随笔為你收集整理的while循环python的范围_python-无法在while循环中从列表中排除一定范围内的项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java常用设计模式————抽象工厂模式
- 下一篇: 蓝桥杯大赛基础之--数列排序