将嵌套列表中的单词拆分为字母

时间:2012-10-31 09:25:06

标签: python

我想知道如何将嵌套列表中的单词拆分成各自的字母,以便

[['ANTT'],['XSOB']]

变为

[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]

4 个答案:

答案 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