在python

时间:2018-12-02 19:14:36

标签: python string list transpose

我有一个数据集名称“ df_list”。我列表的前三行如下;

print(df_list[0]) = ['walter', ' extra', ' is', ' a', ' german', ' award-winning', ' aerobatic', ' pilot', '', ' chief', ' aircraft', ' designer', ' and', ' founder', ' of', ' extra', ' flugzeugbau', ' -LRB-', ' extra', ' aircraft', ' construction', ' -RRB-', '', ' a', ' manufacturer', ' of', ' aerobatic', ' aircraft', ' .']

print(df_list[1]) = ['NN', ' JJ', ' VBZ', ' DT', ' JJ', ' JJ', ' JJ', ' NN', ' ', ' NN', ' NN', ' NN', ' CC', ' NN', ' IN', ' JJ', ' NN', ' -LRB-', ' JJ', ' NN', ' NN', ' -RRB-', ' ', ' DT', ' NN', ' IN', ' JJ', ' NN', ' .']

print(df_list[2]) = ['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O']

我想要输出的是什么

df_list[:7] = [('walter', 'NN', 'O'),
               (' extra', ' JJ', 'O'),
               (' is', ' VBZ', 'O'),
               (' a', ' DT', 'O'),
               (' german', ' JJ', 'O'),
               (' award-winning', ' JJ', 'O'),
               (' aerobatic', ' JJ', 'O')]

我尝试了下面在Transpose list of lists处找到的代码,但是没有用,给了我下面的结果;

list(map(list, zip(*df_list)))
  

df_list [0] = ['walter',    'NN',    'O',    'aaron',    'NN',    'O',    'majda',    'NN',    'O',    琳达    'NN',    'O',    “克雷格”,    'NN',    'O',    '约瑟夫',    'NN',    'O',    “亨里克”,    'NN',    'O',    “音调”,    'JJ',    'O',    '约翰',    'NN',    'O',    'larisa',    'NN',    'O',    “乔恩”    'NN',    'O',    '基督教',    'JJ',    'O',    “侯赛因”,    “ NNP”,    'O',    'italo',    'NN',    'O',    毛萨米    'NN',    'O',    '詹姆士',    “ NNS”,    'O',    “罗杰”,    'NN',    'O',    “赫伯特”,    'NN',    'O',    “亚瑟”    'NN',    'O',    '以马内利',    'NN',    'O',    'piet',    'NN',    'O',    “病房”,    “ VB”,    'O',    'eddio',    'NN',    'O',    “卡琳”,    'NN',    'O',    “普雷斯利”,    'NN',    'O',    '詹姆士',    “ NNS”,    'O',    '乔治',    'NN',    'O',    'llewellyn',    'NN',    'O',    'kia',    'NN',    'O',    '詹姆士',    “ NNS”,    'O',    '詹姆士',    “ NNS”,    'O',    “ timmy”,    'NN',    'O',    '约翰',    'NN',    'O',    “混血儿”,    'NN',    'O',    'vester',    'NN',    'O',    “乔丹”,    'NN',    'O',    “沃尔特”,    'NN',    'O',    '约翰',    'NN',    'O',    罗伯特    'NN',    'O',    '嘛',    'NN',    'O',    '标记',    'NN',    'O',    'jole',    'NN',    'O',    'samu',    “ FW”,    'O',    'thambiah',    'NN',    'O',    '悬崖',    'NN',    'O',    “哈罗德”,    'NN',    'O',    '威廉',    'NN',    'O',    希拉    'NN',    'O',    'tanya',    'NN',    'O',    瑞安    'NN',    'O']

简而言之;

my_df = [['walter',' extra',' is'],['NN',' JJ',' VBZ'],['O','O','O']]

my_df_output = [('walter',' NN','O'),(' extra',' JJ','O'),(' is',' JJ','O')]

感谢所有可能的支持。先感谢您。

1 个答案:

答案 0 :(得分:1)

>>> import itertools
>>> import pprint
>>> p = list(map(list, itertools.zip_longest(*df_list)))
>>> pprint.pprint(p[:7])
[['walter', 'NN', 'O'],
 [' extra', ' JJ', 'O'],
 [' is', ' VBZ', 'O'],
 [' a', ' DT', 'O'],
 [' german', ' JJ', 'O'],
 [' award-winning', ' JJ', 'O'],
 [' aerobatic', ' JJ', 'O']]