打印嵌套列表中每个列表的最大值

时间:2013-12-25 10:51:02

标签: python list max

我有一个整数列表列表:

l = [[4,5,6,7],[3,4,5,6],[10,2,3,4]]

我正在寻找的输出如下:

List 0
4 
5 
6 
7 Max value
List 1
3 
4 
5 
6 Max value
List 2
10 Max value
2 
3 
4 

我想出的代码是:

for i in range(len(l)):
    print "List",i
    for p in l[i]:
        print p if p!=max(l[i]) else p,"Max value"

但是这会产生略微不同的输出,每种情况下Max值都会出现:

List 0
4 Max value
5 Max value
6 Max value
7 Max value
. 
.
.

我哪里错了?

3 个答案:

答案 0 :(得分:4)

这是一个优先问题。 "Max value"else子句无关;相反,它被解释为print语句的第二个参数,else只包含p。没有办法写一个print语句,其中参数的数量根据条件而变化,但你可以通过一些调整来消除歧义:

for i in range(len(l)):
    print "List",i
    for p in l[i]:
        if p == max(l[i]):
            print p
        else:
            print p, "Max value"

答案 1 :(得分:3)

l = [[4,5,6,7],[3,4,5,6],[10,2,3,4]]
for idx, items in enumerate(l):
    mx = max(items)
    print "List {}".format(idx)
    for item in items:
        print "{}{}".format(item, " Max value" if item == mx else "")

<强>输出

List 0
4
5
6
7 Max value
List 1
3
4
5
6 Max value
List 2
10 Max value
2
3
4

答案 2 :(得分:0)

ix = 0    
for lista in l:
        print "List ", ix
        for item in lista:
            if item == max(lista):
                print item, " Max Value"
            else:
                print item
        ix += 1