如果我有一个列表列表并且只想操作该列表中的单个项目,我将如何进行此操作?
例如:
List1 = [[10,13,17],[3,5,1],[13,11,12]]
Run Code Online (Sandbox Code Playgroud)
如果我想取一个值(比如说50)并查看第一个子列表List1,然后减去10(第一个值),然后加13,然后减去17,该怎么办?
ars*_*jii 41
您可以通过首先指定您感兴趣的列表然后指定所需列表中的哪个元素来访问列表列表中的元素.例如,列表中的17元素是:20list1[0][2]
>>> list1 = [[10,13,17],[3,5,1],[13,11,12]]
>>> list1[0][2]
17
Run Code Online (Sandbox Code Playgroud)
所以,你的例子就是
50 - list1[0][0] + list1[0][1] - list1[0][2]
Run Code Online (Sandbox Code Playgroud)
您可以使用itertools.cycle:
>>> from itertools import cycle
>>> lis = [[10,13,17],[3,5,1],[13,11,12]]
>>> cyc = cycle((-1, 1))
>>> 50 + sum(x*next(cyc) for x in lis[0]) # lis[0] is [10,13,17]
36
Run Code Online (Sandbox Code Playgroud)
这里的生成器表达式sum将返回如下内容:
>>> cyc = cycle((-1, 1))
>>> [x*next(cyc) for x in lis[0]]
[-10, 13, -17]
Run Code Online (Sandbox Code Playgroud)
您也可以zip在这里使用:
>>> cyc = cycle((-1, 1))
>>> [x*y for x, y in zip(lis[0], cyc)]
[-10, 13, -17]
Run Code Online (Sandbox Code Playgroud)