在 2d 列表中拆分列表

Splitting lists within a 2d list

假设我有一个名为 sentences 的二维列表。

sentences = [['hello'],['my'],['name']].  

有没有办法将这些列表中的每个字符拆分成单独的索引,所以它看起来像:

sentences = [['h','e','l','l','o'],['m','y'],['n','a','m','e']

例如: sentences.txt =

hello
my
name 

我写的代码:

sentence = open('sentences.txt', 'r')
sentence_list = []
new_sentence_list = []
for line in sentence:
    line = line.rstrip('\n')
    sentence_list.append(line)
for line in sentence_list:
    line = [line]
    new_sentence_list.append(line)

这将导致 new_sentence_list 为:

[['hello'],['my'], ['name']].  

当我希望它是:

[['h','e','l','l','o'],['m','y'],['n','a','m','e']

列表理解非常简单:

new_sentences = [list(sentence[0]) for sentence in sentences]

应用于

sentences = [['hello'],['my'],['name']]

产量

[['h', 'e', 'l', 'l', 'o'], ['m', 'y'], ['n', 'a', 'm', 'e']]

你只需要使用 list(line) 来实现:

所以,你的代码变成了下面,你的原始行被注释了。

sentence = open('sentences.txt', 'r')
sentence_list = []
new_sentence_list = []
for line in sentence:
    line = line.rstrip('\n')
    sentence_list.append(line)
for line in sentence_list:
    line = list(line)
    # line = [line]
    new_sentence_list.append(line)