我正在尝试从打印功能中删除括号。
frames = [1,2,3,4,5,6,7,8,9,10]
scores = [10,7,10,7,6,7,9,5,10]
def FindLowest(scores):
sorted_list = sorted(scores)
low = sorted_list[0]
rnd = 0
for i in range(len(frames)):
if scores[i] == low:
rnd = i + 1
break
return low, rnd
print("Lowest Score is",FindLowest(scores))
最低得分为5,出现在第8帧
实际输出=最低分数是(5,8)
答案 0 :(得分:1)
尝试对低分数及其框架使用带有占位符的打印语句:
def FindLowest(scores):
sorted_list = sorted(scores)
low = sorted_list[0]
rnd = 0
for i in range(len(frames)):
if scores[i] == low:
rnd = i + 1
break
return low, rnd
result = FindLowest(score)
print "Lowest score is %d and it occured in frame %d" % (result[0], result[1])
或者如果您使用的是Python 3,请使用此版本的print
:
print("Lowest score is %d and it occured in frame %d" % (result[0], result[1]))
答案 1 :(得分:0)
您的函数返回一个元组,并且您正在打印该元组。您需要拆开元组,或重构函数以返回其他内容。
通过by,您的函数似乎效率很低。 <ui:composition template="/pages/layout.xhtml">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('tr > td.y_n').each(function() {
colsole.log("in function");
if ($(this).text() === "Passed") {
colsole.log("in if");
$(this).css('background-color', '#FF0000');
} else {
colsole.log("in if else");
$(this).css('background-color', '#3AC709');
}
});
});
</script>
<p:dataTable id="idExecution" var="varTS" value="#{executionBean.lstLiveSelectedSuiteData}" style="margin-bottom:20px">
<f:facet name="header"> Steps </f:facet>
<p:column headerText="Status" class="y_n" >
<h:outputText value="#{varTS.status}" />
</p:column>
<p:column headerText="Error Message">
<h:outputText value="#{varTS.errorMessage}" />
</p:column>
</p:dataTable>
</ui:composition>
两个列表并按score元素进行排序会更有意义。
zip
def FindLowest(scores):
return min(enumerate(scores), key=lambda x: x[1])
idx, score = FindLowest(scores)
print("Lowest score is {0} and it occurred in frame {1}".format(score, frames[idx]))
将每个列表索引与其在列表中的值配对;然后,我们选择值最低的索引,值对。
将enumerate
优先于min()
可能会稍微提高效率,但最重要的是,它可以告诉读者确切的情况。
这也避免了在函数内部使用sorted()[0]
作为全局变量。或者,您可以将框架列表作为第二个参数传递,但是也许您也应该真正重命名该函数。或直接内联它,因为它非常简单:
frames
但是我更喜欢第一种方法。
答案 2 :(得分:0)
问题是您要从函数返回一个元组并打印整个元组。
而不是打印元组的每个元素
frames = [1,2,3,4,5,6,7,8,9,10]
scores = [10,7,10,7,6,7,9,5,10]
def FindLowest(scores):
sorted_list = sorted(scores)
low = sorted_list[0]
rnd = 0
for i in range(len(frames)):
if scores[i] == low:
rnd = i + 1
break
return low, rnd
print("Lowest Score is " + str(FindLowest(scores)[0]) + "," + str(FindLowest(scores)[1]))
或用于python2打印
frames = [1,2,3,4,5,6,7,8,9,10]
scores = [10,7,10,7,6,7,9,5,10]
def FindLowest(scores):
sorted_list = sorted(scores)
low = sorted_list[0]
rnd = 0
for i in range(len(frames)):
if scores[i] == low:
rnd = i + 1
break
return low, rnd
a,b = FindLowest(scores)
print("Lowest Score is ",a,b)
答案 3 :(得分:0)
更改此
return low, rnd
对此
return f'{low}, {rnd}'
答案 4 :(得分:0)
只需将您的print
更改为此:
print("Lowest score is %d and it occurred in frame %d" % FindLowest(scores))