我有一个整数列表列表:
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
.
.
.
我哪里错了?
答案 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