我正在尝试获取列表中的最后一个条目,然后将该条目与另一个列表中的另一个条目进行比较。
ExpertiseList=['5', '9', '10']
DifficultyList=['1', '2', '7']
我试过了:
if ExpertiseList[len(ExpertiseList-1)]>=DifficultyList[len(DifficultyList)-1]:
print("Solved")
但是我收到了错误消息。
TypeError: unsupported operand type(s) for -: 'list' and 'int'
答案 0 :(得分:2)
你写了len(ExpertiseList-1)
而不是len(ExpertiseList) - 1
。虽然请注意,负索引为您提供了列表右侧的元素,因此some_lst[-1]
是最后一个元素。
错误消息告诉您,您尝试在列表和int之间使用减法运算符(-
),这没有任何意义。
答案 1 :(得分:1)
len(ExpertiseList-1)
应为len(ExpertiseList) - 1
,否则您试图从列表中减去整数
答案 2 :(得分:1)
有一种更好的方法来获取列表的最后一个元素。在python中,索引和切片非常强大。 [ ]
运算符接受三个参数,以冒号:[start:end:step]
分隔,起始索引为包含,末尾索引为独占。当给出一个参数时,它返回相应的amount元素,否则返回列表的一个片段。
索引也可能是负数。从列表末尾开始的负索引索引,而不是开头,例如[-1]
给出列表中的最后一个元素,[-2]
倒数第二个等等。
我将在这里给出一些切片的例子,只是为了好玩:
l = [0,1,2,3,4,5]
l[-1] # 5
l[:-1] # [0,1,2,3,4]
l[::2] # [0,2,4]
l[::-1] # [5,4,3,2,1,0]
l[-1:1:-2] # [5,3]
答案 3 :(得分:0)
第一个列表中的“-1”在de len函数内,你必须在结束“)”之后放置它。
if ExpertiseList[len(ExpertiseList)-1]>=DifficultyList[len(DifficultyList)-1]:
print("Solved")