Is there a way to select every 2nd or 3rd (for example) item within a matrix?
For example:
f = [["1", "5", "8", "9"], ["2", "6", "9", "10"], ["3", "7", "11", "12"]]
I am wondering if there is a direct function to select every 2nd number in every list (preferably putting those digits in a list as well). Thus resulting into:
["5", "6", "7"]
I know that I can achieve this using a loop but I am wondering if I can achieve this directly.
解决方案
Without any loop (external)
>>> f = [["1", "5", "8", "9"], ["2", "6", "9", "10"], ["3", "7", "11", "12"]]
>>> list(map(lambda x:x[1],f)) # In python2, The list call is not required
['5', '6', '7']
Ref : map
Another way to do it without loop (Courtesy : Steven Rumbalski)
>>> import operator
>>> list(map(operator.itemgetter(1), f))
['5', '6', '7']
Yet another way to do it without loop (Courtesy : Kasra A D)
>>> list(zip(*f)[1])
['5', '6', '7']
Ref: zip