将列表列表转换为元组列表的列表

Irf*_* HP 9 python nested list nested-lists python-3.x

我有一个清单列表包括:

> [['Di/in/QUE', 'mana/wh/QUE', 'lokasi/nn/INTENT', 'laboratorium/nnp/LOC', 'dasar/nnp/LOC', '?/?/O'], ['Di/in/QUE', 'mana/wh/QUE', 'lokasi/nn/INTENT', 'laboratorium/nnp/LOC', 'dasar/nnp/LOC', '2/nnp/LOC', '?/?/O'], ['Di/in/QUE', 'mana/wh/QUE', 'lokasi/nn/INTENT', 'laboratorium/nnp/LOC', 'lanjut/nnp/LOC', '?/?/O']]
Run Code Online (Sandbox Code Playgroud)

我想将其转换为元组列表的列表,如下所示:

> [[('Di','in','QUE'), ('mana','wh','QUE'), ('lokasi','nn','INTENT'), ('laboratorium','nnp','LOC'), ('dasar','nnp','LOC'), ('?','?','O')], [('Di','in','QUE'), ('mana','wh','QUE'), ('lokasi','nn','INTENT'), ('laboratorium','nnp','LOC'), ('dasar','nnp','LOC'), ('2','nnp','LOC'), ('?','?','O')], [('Di','in','QUE'), ('mana','wh','QUE'), ('lokasi','nn','INTENT'), ('laboratorium','nnp','LOC'), ('lanjut','nnp','LOC'), ('?','?','O')]]
Run Code Online (Sandbox Code Playgroud)

我从文本文件中读取数据,所以这是我的代码:

with open("corpusposner.txt", "r") as f: 
    vallist = [line.split() for line in f]
f.close()
standard_form_tokens = []
for sentence in vallist:
    for satupsg in sentence:
        anotasi = satupsg.split('/')
        kata, tag, ner = anotasi[0], anotasi[1], anotasi[2]

        standard_form_tokens.append((kata, tag.lower(), ner))
Run Code Online (Sandbox Code Playgroud)

当我打印standard_form_tokens时,它只返回一个大元组列表

[('Di','in','QUE'),('mana','wh','QUE'),('lokasi','nn','INTENT'),('laboratorium','nnp ','LOC'),('dasar','nnp','LOC'),('?','?','O'),('Di','in','QUE'),( 'mana','wh','QUE'),('lokasi','nn','INTENT'),('laboratorium','nnp','LOC'),('dasar','nnp', 'LOC'),('2','nnp','LOC'),('?','?','O'),('Di','in','QUE'),('mana' ','wh','QUE'),('lokasi','nn','INTENT'),('laboratorium','nnp','LOC'),('lanjut','nnp','LOC '),('?','?','O')]

我试图将standard_form_tokens附加到一个新列表中,但它不起作用.有任何想法吗?

use*_*203 8

使用tuplesplit和列表理解:

[[tuple(i.split('/')) for i in j] for j in arr]
Run Code Online (Sandbox Code Playgroud)

输出:

[[('Di', 'in', 'QUE'),
  ('mana', 'wh', 'QUE'),
  ('lokasi', 'nn', 'INTENT'),
  ('laboratorium', 'nnp', 'LOC'),
  ('dasar', 'nnp', 'LOC'),
  ('?', '?', 'O')],
 [('Di', 'in', 'QUE'),
  ('mana', 'wh', 'QUE'),
  ('lokasi', 'nn', 'INTENT'),
  ('laboratorium', 'nnp', 'LOC'),
  ('dasar', 'nnp', 'LOC'),
  ('2', 'nnp', 'LOC'),
  ('?', '?', 'O')],
 [('Di', 'in', 'QUE'),
  ('mana', 'wh', 'QUE'),
  ('lokasi', 'nn', 'INTENT'),
  ('laboratorium', 'nnp', 'LOC'),
  ('lanjut', 'nnp', 'LOC'),
  ('?', '?', 'O')]]
Run Code Online (Sandbox Code Playgroud)