我想比较同一列表中的元素并追加到其他列表,但是我有一些问题。
例如:
a=[3,4,21,36,10,28,35,5,24,42]
c=[]
我想这样做:
4>3
追加到其他列表。
21>4
追加到其他列表。
36>21
追加到其他列表。
28>10
,但不要将其附加到其他列表中,因为36大于28。
结果应为c=[4,21,36,42]
。
我尝试了以下代码:
b=0
d=1
while len(a)>b and len(a)>d:
if a[d]>a[b]:
c.append(a[d])
b+=1
d+=1
但是它给了我:
c=[4, 21, 36, 28, 35, 24, 42]
答案 0 :(得分:1)
尝试一下:
a=[3,4,21,36,10,28,35,5,24,42]
c = []
for x in range(1,len(a)):
count = 0
for y in range(x):
if a[x] > a[y]:
count = count + 1
if count == x:
c.append(a[x])
print(c)
答案 1 :(得分:0)
您可以迭代并检查
currentList = [3,4,21,36,10,28,35,5,24,42]
newList = []
current_low = currentList[0]-1 # initialse current_low as [(first element of list) - 1]
for value in currentList:
if value > current_low:
newList.append(value)
current_low = value
>>>print(newList)
[3, 4, 21, 36, 42]
答案 2 :(得分:0)
花了一点时间才意识到您想要的数字要比所有以前的数字都要少,而不仅仅是前面的数字。
如果您想通过列表理解来做到这一点,可以这样做:
$(document).ready(function(){
var myCarousel = $(".carousel");
myCarousel.each(function() {
$(this).slick({
dots: false,
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
autoplaySpeed: 7 * 1000,
mobileFirst: true,
arrows: false
});
});
});
结果:c = [a[i] for i in range(1,len(a)) if a[i] > max(a[:i])]
但是,如果您改变了主意并决定希望数字大于先前的数字,则可以执行以下操作:
[4, 21, 36, 42]
结果:c = [j for (i,j) in filter(lambda x: x[0] < x[1], zip(a, a[1:]))]