2 回答
TA贡献1873条经验 获得超9个赞
您正在循环,not list == 'X'然后进行测试not range(2, 4) == 'X';显然,两者都不相等,因此您要打印两次。但是,您的逻辑可以大大简化。如果目标是查看索引2、3和4是否相等,则只需将列表的该片转换为aset并检查长度是否为1:
mylist = ['X', 'Y', 'X', 'X', 'X', 'Y'] # Changed list name; naming the list "list" leads to tears
if len(set(mylist[2:5])) == 1:
print("2, 3 and 4 equal")
else:
print("At least one not equal to the others")
您可能还希望检查其mylist长度是否足够长(如果切片未获得预期的三个元素,切片将不会引发错误),因为这样编写只能测试列表的长度至少为3个元素以及索引2中的任何元素如果存在,则4等于。
TA贡献1799条经验 获得超8个赞
我敢肯定有更优雅的方法可以做到这一点,但是您可以尝试:
def check_same(mylist, start_index, end_index):
value = mylist[start_index]
for element in mylist[start_index + 1 : end_index]:
if not element == value:
return False
return True
添加回答
举报