If, just as a thought experiment, you want map
to work you would do:
>>> l = ['NP', 'shot']
>>> next(map(lambda x: (x,), [l[-1]]))
('shot',)
It is far better to just do:
>>> tuple([l[-1]])
('shot',)
Or use the literal tuple constructor form:
>>> (l[-1],)
('shot',)
Which can be shortened to:
>>> l[-1],
('shot',)
With tuple([l[-1]])
you need a iterable container -- in this case a list -- so that you don't get ('s', 'h', 'o', 't')
You don't need that with (l[-1],)
since the arguments to the literal are not iterated; they are only evaluated:
>>> (1+2,) #1+2 will be evaluated
(3,)
>>> ("1+2",) # the string "1+2" is not iterated...
('1+2',)
>>> tuple(1+2) # self explanatory error...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>> tuple("1+2") # string is iterated char by char
('1', '+', '2')