问我的问题:
在《神话中的所有生物》一书中,侏儒是善良的,有胡须的生物,而地精则倾向于专横和头脑简单。地精喜欢骚扰侏儒,让他们按胡子的长度排列成三人一组。由于侏儒的身高不同,他们会改变自己的布局来迷惑地精。因此,地精们必须以厘米为单位测量胡须,看看每个人是否排列整齐。 你的任务是编写一个函数来帮助地精们判断侏儒们是否正确排列,从最短到最长或者从最长到最短。输入将来自文件gnome.txt文件它从一行开始,该行包含一个整数N,0<;N<;30,这是要处理的组数。下面是N行,每行包含三个小于100的不同正整数。对于每组,应打印一行“已订购”或“未订购”: 用法:
gnome() Ordered Unordered Ordered
内部gnome.txt文件
三
40 62 77号
88 62 77个
91 33 18号
到目前为止我的代码
def gnome():
infile = open('gnome.txt')
firstline = infile.readline()
for i in range (int(firstline)):
gnomeList = infile.readline().split()
intlist = []
for str in gnomeList:
intlist.append(int(str))
if intlist[i] > intlist[i + 1]:
print ('Unordered')
else:
print ('ordered')
我收到的错误
文件“C:/Users/cjakob/Desktop/homework6.py”,第34行,在gnome中 如果intlist[i]>;intlist[i+1]: 索引器错误:列表索引超出范围
非常感谢大家我已经为此工作了几个小时
其他方法:
输出:
在上面的代码中,我有一个
check
函数,它接受列表,如果list == sorted(list)
,它将返回True,表示有序。对于大文件不要使用
readlines
你把你的指数搞糊涂了。索引
i
表示需要处理的三个侏儒的集数,而不是每个集的侏儒数。你知道吗因为您要检查最近添加的值是否大于两天前添加的值,所以可以将if语句更改为
if intlist[-2] > intlist[-1]:
。在Python中,这个负索引表示从列表末尾开始倒数的元素n。 请注意,如果列表中只有一个元素,则需要确保没有执行此操作,否则它将引发异常,因为intlist[-2]
将不存在!你知道吗欣赏Python:)
这将把列表与自身的排序版本(升序和降序)进行比较,并返回布尔结果。你知道吗
相关问题 更多 >
编程相关推荐