Сценарий: Я получил 3 списка из файла N-троек, и теперь я пытаюсь объединить их в один организованный список.
Исходный формат:
+--------+---------+--------+
| 100021 | hasdata | y |
+--------+---------+--------+
| 100021 | name | USER1 |
+--------+---------+--------+
| 100021 | extra1 | typer |
+--------+---------+--------+
| 100021 | extra2 | reader |
+--------+---------+--------+
| 50003 | hasdata | y |
+--------+---------+--------+
| 50003 | name | USER2 |
+--------+---------+--------+
| 50003 | extra1 | reader |
+--------+---------+--------+
| 50003 | extra2 | writer |
+--------+---------+--------+
| 50003 | extra3 | coder |
+--------+---------+--------+
| 30007 | hasdata | n |
+--------+---------+--------+
| 30007 | name | 0001 |
+--------+---------+--------+
| 30007 | extra1 | Null |
+--------+---------+--------+
Зацикливая файл ntriples, я создал 3 списка (каждый является столбцом таблицы выше).Сейчас я пытаюсь сопоставить их примерно так:
+--------+---------+-------+--------+--------+--------+
| | hasdata | name | extra1 | extra2 | extra3 |
+--------+---------+-------+--------+--------+--------+
| 100021 | y | USER1 | typer | reader | |
+--------+---------+-------+--------+--------+--------+
| 50003 | y | USER2 | reader | writer | coder |
+--------+---------+-------+--------+--------+--------+
| 30007 | extra2 | n | 0001 | Null | |
+--------+---------+-------+--------+--------+--------+
До сих пор я использовал функцию:
def listOfTuples(l1, l2, l3):
return list(map(lambda x, y, z:(x,y, z), l1, l2, l3))
Но это дало мне только прямое слияние соответствующих предметов.
Вопрос: Я знаю, что можно циклически проходить по спискам и получать соответствующие элементы, а также вручную создавать массив / фрейм данных.Мой вопрос: есть ли какая-либо функция или пакет, которые могут сделать это автоматически и менее запутанным способом?
Obs: У меня уже есть способ создать кадр данных, выполняя цикл вручную.Я просто хотел узнать, есть ли другой, более эффективный способ.