我想知道如何将嵌套列表中的单词拆分成各自的字母,以便
[['ANTT'],['XSOB']]
变为
[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
答案 0 :(得分:9)
列表理解:
[list(l[0]) for l in mylist]
演示:
>>> mylist = [['ANTT'],['XSOB']]
>>> [list(l[0]) for l in mylist]
[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
答案 1 :(得分:2)
你可以采用一种功能性方法(我仍然更喜欢列表理解,如Martijn Pieters的回答):
>>> from operator import itemgetter
>>> delisted = map(itemgetter(0),[['ANTT'],['XSOB']]) # -> ['ANTT', 'XSOB']
>>> splited = map(list,delisted) # -> [['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
或者,作为oneliner:
>>> map(list,map(itemgetter(0),[['ANTT'],['XSOB']]))
[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
答案 2 :(得分:1)
>>> map(lambda s: map(list, s)[0], [['ANTT'],['XSOB']])
[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
答案 3 :(得分:0)
到目前为止,所有给出的答案都包含一个-有点可疑的-0
文字。乍看之下,这似乎是一种人为的加法运算,因为原始任务不包含任何整数文字。
但是,输入当然还有一些特殊属性,只是一个列表。这是一个列表列表,其中完全是一个字符串文字。换句话说,是一组单独装箱的对象(字符串)。如果我们改写原始问题和accepted answer,则可以使[x]
和[0]
之间的关系更加明显:
package = [['ANTT'], ['XSOB']]
result = [list(box[0]) for box in package] # 0 indicates first (and only) element in the box