Python 从列表中查找递增值

Python 从列表中查找递增值,python,Python,我有两个问题 我需要检查a[0]是否大于a[1],依此类推直到a[n] 我需要检查a[n]是否小于a[n-1],依此类推直到a[0] 例如,列表中的值: ['0.00', '0.00', '0.00', '7.79', '-1.63', '-0.37', '-1.42', '-0.20', '0.16', '0.25'] 您可以使用zip和enumerate实现相同的功能 对于第二部分,您可以使用 x=['0.00', '0.00', '0.00', '7.79', '-1.63', '-

我有两个问题

  • 我需要检查a[0]是否大于a[1],依此类推直到a[n]

  • 我需要检查a[n]是否小于a[n-1],依此类推直到a[0]

例如,列表中的值:

['0.00', '0.00', '0.00', '7.79', '-1.63', '-0.37', '-1.42', '-0.20', '0.16', '0.25']
您可以使用
zip
enumerate
实现相同的功能

对于第二部分,您可以使用

x=['0.00', '0.00', '0.00', '7.79', '-1.63', '-0.37', '-1.42', '-0.20', '0.16', '0.25']
x=x[::-1]
y=zip(x,x[1:])

print [(i,j) for i,j in enumerate(y) if j[0]<j[1]]
x=['0.00'、'0.00'、'0.00'、'7.79'、'-1.63'、'-0.37'、'-1.42'、'-0.20'、'0.16'、'0.25']
x=x[:-1]
y=zip(x,x[1:]

print[(i,j)表示枚举中的i,j(y)如果j[0]您可以尝试以下方法:在

  • x[:-1]
    :不包含最后一个元素的列表
  • x[1://code>:不包含第一个元素的列表
并比较值。请注意,为了相等,您可以将列表元素作为字符串进行比较,但对于
,您可能希望在比较之前将它们转换为
浮点值

x=['0.00', '0.00', '0.00', '7.79', '-1.63', 
   '-0.37', '-1.42', '-0.20', '0.16', '0.25']

for xj, xi in zip(x[:-1], x[1:]):

    if xj == xi:
        print '{} == {}'.format(xj, xi)
    elif float(xj) < float(xi):
        print '{} < {}'.format(xj, xi)
    else:
        print '{} > {}'.format(xj, xi)
x=['0.00'、'0.00'、'0.00'、'7.79'、'-1.63',
'-0.37', '-1.42', '-0.20', '0.16', '0.25']
对于XJ,席在Zip(x[::1),x [1:]):
如果xj==xi:
打印'{}=={}'。格式(xj,xi)
elif浮点数(xj)<浮点数(xi):
打印“{}<{}”。格式(xj,xi)
其他:
打印“{}>{}”。格式(xj,xi)
输出:

0.00 == 0.00
0.00 == 0.00
0.00 < 7.79
7.79 > -1.63
-1.63 < -0.37
-0.37 > -1.42
-1.42 < -0.20
-0.20 < 0.16
0.16 < 0.25
0.00==0.00
0.00 == 0.00
0.00 < 7.79
7.79 > -1.63
-1.63 < -0.37
-0.37 > -1.42
-1.42 < -0.20
-0.20 < 0.16
0.16 < 0.25

更新:

在您的评论之后,您只需要一个包含字符串的列表,告诉您元素是否增加。这应该可以:

def comp_str(xj, xi):
    if xj == xi:
        return 'equal'
    elif float(xj) < float(xi):
        return 'yes'
    else:
        return 'no'

compare = [ comp_str(xj, xi) for xj, xi in zip(x[:-1], x[1:]) ]
print compare

# -> ['equal', 'equal', 'yes', 'no', 'yes', 'no', 'yes', 'yes', 'yes']
def comp_str(xj,xi):
如果xj==xi:
返回“相等”
elif浮点数(xj)<浮点数(xi):
返回“是”
其他:
返回“否”
比较= = [XJ,Xi ],用于XJ,席席在zip(x[:- 1),x[1:] ]
打印比较
#->[“相等”、“相等”、“是”、“否”、“是”、“否”、“是”、“是”、“是”]

您希望看到的输出是什么?您尝试过什么?请显示您尝试过的内容的代码,否则您很可能无法在此处得到答案。我尝试通过比较[0]和[1],然后比较[1]和[2]来进行检查手动。递归函数会很好。可能会有帮助。你是说它需要按相反的顺序排序,还是说第一个值是最大值,最后一个值是最小值?在案例1中,第一个值应该比其他值小。在案例2中,颠倒列表,第一个值应该比其他值高。我已经尝试了c的第一部分ode和最后两个值不显示。如果每个值都大于,那么像“增量”这样打印就可以了。我正在为范围内的I(len(list))尝试这样的
:如果Ilist[I+1]:如果list[I]==list[I+1]:打印“相等”,则打印“是”其他:打印“否”
如果所有值本质上都是递增的,那么只打印“递增”就好了。@jOSe不用(i,j)而使用“递增”让我们来。我做了如下操作
temp[:]=[]。[]清空范围内i的列表(len(list)):If ilist[i+1]:#如果列表[i]==列表[i+1]:#打印“是”临时追加(“是”):#打印“相等”临时追加(“相等”)其他:#如果临时中“否”打印“否”临时追加(“否”):打印“减量值可用”其他:打印“仅限增量值”
def comp_str(xj, xi):
    if xj == xi:
        return 'equal'
    elif float(xj) < float(xi):
        return 'yes'
    else:
        return 'no'

compare = [ comp_str(xj, xi) for xj, xi in zip(x[:-1], x[1:]) ]
print compare

# -> ['equal', 'equal', 'yes', 'no', 'yes', 'no', 'yes', 'yes', 'yes']