【发布时间】:2018-02-07 10:12:35
【问题描述】:
我想为列表列表中的每个元组添加唯一值。该列表如下所示:
[[('While', 'IN', 'Entity'),
('applying', 'VBG', 'O'),
('opacity', 'NN', 'Entity'),
('to', 'TO', 'Entity'),
('a', 'DT', 'Entity'),
('form', 'NN', 'Entity'),
('should', 'MD', 'O'),
('we', 'PRP', 'O'),
('use', 'VB', 'Entity'),
('a', 'DT', 'Entity'),
('decimal', 'NN', 'Entity'),
('or', 'CC', 'Entity'),
('double', 'JJ', 'Entity'),
('value', 'NN', 'Entity'),
('?', '.', 'O')],
[('I', 'PRP', 'O'),
('want', 'VBP', 'O'),
('to', 'TO', 'Entity'),
('use', 'VB', 'Entity'),
('a', 'DT', 'Entity'),
('trackbar', 'NN', 'O'),
('to', 'TO', 'Entity'),
('change', 'VB', 'Entity'),
('a', 'DT', 'Entity'),
('forms', 'JJ', 'Entity'),
('opacity', 'NN', 'Entity'),
('.', '.', 'O')]]
我试图得到以下输出:
c = [(1, 'While', 'IN', 'Entity'),
(1, 'applying', 'VBG', 'O'),
(1, 'opacity', 'NN', 'Entity'),
(1, 'to', 'TO', 'Entity'),
(1, 'a', 'DT', 'Entity'),
(1, 'form', 'NN', 'Entity'),
(1, 'should', 'MD', 'O'),
(1, 'we', 'PRP', 'O'),
(1, 'use', 'VB', 'Entity'),
(1, 'a', 'DT', 'Entity'),
(1, 'decimal', 'NN', 'Entity'),
(1, 'or', 'CC', 'Entity'),
(1, 'double', 'JJ', 'Entity'),
(1, 'value', 'NN', 'Entity'),
(1, '?', '.', 'O'),
(2, 'I', 'PRP', 'O'),
(2, 'want', 'VBP', 'O'),
(2, 'to', 'TO', 'Entity'),
(2, 'use', 'VB', 'Entity'),
(2, 'a', 'DT', 'Entity'),
(2, 'trackbar', 'NN', 'O'),
(2, 'to', 'TO', 'Entity'),
(2, 'change', 'VB', 'Entity'),
(2, 'a', 'DT', 'Entity'),
(2, 'forms', 'JJ', 'Entity'),
(2, 'opacity', 'NN', 'Entity'),
(2, '.', '.', 'O')]
每个列表都应该发生数字增量(对于属于列表的元组,数字应该保持不变)并最终输出为上述元组列表。
通过这样做,我将能够实现以下目标:
pd.DataFrame.from_records(c, columns = ['a','b','c','d'])
a b c d
0 1 While IN Entity
1 1 applying VBG O
2 1 opacity NN Entity
3 1 to TO Entity
4 1 a DT Entity
5 1 form NN Entity
6 1 should MD O
7 1 we PRP O
8 1 use VB Entity
9 1 a DT Entity
10 1 decimal NN Entity
11 1 or CC Entity
12 1 double JJ Entity
13 1 value NN Entity
14 1 ? . O
15 2 I PRP O
16 2 want VBP O
17 2 to TO Entity
18 2 use VB Entity
19 2 a DT Entity
20 2 trackbar NN O
21 2 to TO Entity
22 2 change VB Entity
23 2 a DT Entity
24 2 forms JJ Entity
25 2 opacity NN Entity
26 2 . . O
我正在尝试使用 list-zip 函数:
list(zip(range(len(a)),a))
这给了我以下结果:
[(0,
[('While', 'IN', 'Entity'),
('applying', 'VBG', 'O'),
('opacity', 'NN', 'Entity'),
('to', 'TO', 'Entity'),
('a', 'DT', 'Entity'),
('form', 'NN', 'Entity'),
('should', 'MD', 'O'),
('we', 'PRP', 'O'),
('use', 'VB', 'Entity'),
('a', 'DT', 'Entity'),
('decimal', 'NN', 'Entity'),
('or', 'CC', 'Entity'),
('double', 'JJ', 'Entity'),
('value', 'NN', 'Entity'),
('?', '.', 'O')]),
(1,
[('I', 'PRP', 'O'),
('want', 'VBP', 'O'),
('to', 'TO', 'Entity'),
('use', 'VB', 'Entity'),
('a', 'DT', 'Entity'),
('trackbar', 'NN', 'O'),
('to', 'TO', 'Entity'),
('change', 'VB', 'Entity'),
('a', 'DT', 'Entity'),
('forms', 'JJ', 'Entity'),
('opacity', 'NN', 'Entity'),
('.', '.', 'O')])]
但无法进一步采用这种方法。
【问题讨论】: