如何获取列表的最后三个元素,不包括第一个元素?
例如,使用这两个列表
a = ['Matt', '1', '2']
,b = ['Luke', '1', '2', '3']
我希望返回的列表为:['1', '2']
和['1', '2', '3']
。有一个简单的方法吗?
答案 0 :(得分:1)
您只需使用slicing:
>>> b[-3:]
['1', '2', '3']
如果您的列表中得分少于3,那么您可以:
>>> b = ['Luke', '1', '2']
>>> b[1:]
['1', '2']
因此,要将它们组合起来,您可以使用:
if len(b) > 3:
b[-3:]
else:
b[1:]
答案 1 :(得分:1)
为了从列表中获取 last n
元素,您可以:
a[-n:]
这是一个简单的例子:
>>> a = [1, 2, 3, 4]
>>> a[-3:]
[2, 3, 4]
如果您的列表包含< n个元素,你可以将第一个元素切片。
答案 2 :(得分:1)
在您的情况下,名称始终是列表中的第一个参数,因此只需应用其中一个参数:
a = a[1:]
b = b[1:]
获取最后三个参数不会在a上工作,因为它包含3个参数。它会在一些条件陈述之后起作用。
如果你确定你想要最后3个参数,请使用:
a = a[-3:]
b = b[-3:]
完整代码段:
def get_list(my_list):
if len(my_list) > 3:
return my_list[-3:]
else:
return my_list[1:]
答案 3 :(得分:1)
除了其他好的答案之外,您可能还需要考虑使用dictionaries而不是列表。你可以这样做:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://someServer:6405/biprws/logon/long");
request.Accept = "application/json";
输出:
a = ['Matt', '1', '2']
b = ['Luke', '1', '2', '3']
scoresDict = {}
scoresDict[a[0]] = a[1:]
scoresDict[b[0]] = b[1:]
print(scoresDict)
print(scoresDict['Matt'])
print(scoresDict['Luke'])
答案 4 :(得分:0)
对于list
中的不同元素,请将所有元素放在列表中,并将map
放入lambda
函数。
In [1]: a = [1,2,3,4]
In [2]: b = ['a', 'b', 'c', 'd', 'e']
In [3]: lis = [a, b]
In [4]: list(map(lambda x: x[-(len(x)-1):], lis))
Out[4]: [[2, 3, 4], ['b', 'c', 'd', 'e']]