我必须将值列表更改为多个数组,如下所示:
list_train_data = [u'Class 1',
u'Class 2',
u'Class 3',
u'Class 4',
u'Class 5']
我需要将此值放入如下数组中:
train_set = [['Class 1'],['Class 2'],['Class 3'],['Class 4'],['Class 5']]
如果可能,请不要使用for循环。
答案 0 :(得分:7)
使用列表理解:
train_set = [[x] for x in list_train_data]
<强>演示:强>
>>> list_train_data = [u'Class 1', u'Class 2', u'Class 3', u'Class 4', u'Class 5']
>>> [[x] for x in list_train_data]
[[u'Class 1'], [u'Class 2'], [u'Class 3'], [u'Class 4'], [u'Class 5']]
答案 1 :(得分:7)
Scince你添加了numpy标签,这是一个numpy解决方案:
list_train_data = [u'Class 1',
u'Class 2',
u'Class 3',
u'Class 4',
u'Class 5']
import numpy as np
np.array(list_train_data, "O")[:, None]
结果是:
array([[u'Class 1'],
[u'Class 2'],
[u'Class 3'],
[u'Class 4'],
[u'Class 5']], dtype=object)
答案 2 :(得分:1)
当然有另一种不使用循环的方法,那就是使用map
函数:
>>> list_train_data = ['Class 1',
'Class 2',
'Class 3',
'Class 4',
'Class 5']
>>> map(lambda x: [x], list_train_data)
[['Class 1'], ['Class 2'], ['Class 3'], ['Class 4'], ['Class 5']]
没有任何循环。然而,这比LC慢。但仍然没有看到for
循环。