Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计数“;“主宰者”;_Python_Python 3.x_List - Fatal编程技术网

Python 计数“;“主宰者”;

Python 计数“;“主宰者”;,python,python-3.x,list,Python,Python 3.x,List,这是我在学校遇到的问题。我已经编写了代码,它返回了正确的结果。但是,测试程序显示校验和不匹配。下面是问题和我的代码 如果项目元素右边的每个元素都严格小于它,则称项目元素为“支配者”。 此函数应计算给定项列表中有多少元素是支配元素,并返回该计数。例如,在列表[42,7,12,9,2,5]中,元素42,12,9和5是支配元素。根据这个定义,列表的最后一项自动成为支配者 def count_支配者(项目): 如果len(项目)==0: 返回len(项目) 其他: k=1 对于范围内的i(1,len(

这是我在学校遇到的问题。我已经编写了代码,它返回了正确的结果。但是,测试程序显示校验和不匹配。下面是问题和我的代码

如果项目元素右边的每个元素都严格小于它,则称项目元素为“支配者”。 此函数应计算给定项列表中有多少元素是支配元素,并返回该计数。例如,在列表[42,7,12,9,2,5]中,元素42,12,9和5是支配元素。根据这个定义,列表的最后一项自动成为支配者

def count_支配者(项目):
如果len(项目)==0:
返回len(项目)
其他:
k=1
对于范围内的i(1,len(项目)):

如果评论中已经提到的项目[i]你没有比较,那么操作是不正确的。目前您正在比较:

  • 比较7<42
  • 比较12<7
  • 比较9<12
  • 比较2<9
  • 比较5<2
如果条件为真,则增加k。根据您的任务,支配者被定义为“其右边的每个元素都严格小于它”。这意味着您必须将每个项目与其右侧的每个元素进行比较(即,您必须检查42>7、42>12、42>9、42>2和42>5,以确定42是否为支配者)

请查看以下功能:

def count_支配者(项目):
k=0
对于idx,枚举中的项(项):
支配者=真
对于项目[idx+1:]中的礼仪:
打印('比较{}和{}'。格式(item,ritem))
#如果是真的,就不是主宰者

如果item我认为您缺少的单词是
every
在for循环
print('comparing{}和{}'。format(items[i],items[i-1])
,那么您将看到您的函数没有检查支配者。取自。您可以对范围(0,len(items),2)中的i使用
,只需将
如果items[i]>items[i+1]:
放入for循环中即可。for循环基本上比i快了2倍。我想你在问一个调试问题,但我不确定(也就是说,不清楚你在问什么)。如果您提出的是调试问题,请将您的问题放在主题上:包括重复该问题的问题。寻求调试帮助的问题(“为什么这段代码没有按我想要的方式工作?”)必须包括:(1)所需的行为,(2)特定的问题或错误,(3)在问题本身中重现它所需的最短代码。请看:,和。谢谢你们。我想我明白为什么我的代码在测试程序中失败了。原因是我在比较第一和第二个元素,第二和第三个元素。我忽略了“每一个”这个词。
comparing 42 and 7
comparing 42 and 12
comparing 42 and 9
comparing 42 and 2
comparing 42 and 5
42 is a dominator
comparing 7 and 12
comparing 12 and 9
comparing 12 and 2
comparing 12 and 5
12 is a dominator
comparing 9 and 2
comparing 9 and 5
9 is a dominator
comparing 2 and 5
5 is a dominator