在 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)
假设我有一个名为 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)