Попробуем уточнить, из чего состоит метод двойной транспонирования.Я не претендую на оригинальность подхода.Я сосредоточен на ясности изложения.
Давайте начнем с 5 списков.Сначала мы поместим три в стол.Затем мы добавим последние два.
food = {"bagels", "lox", "cream cheese", "coffee", "blueberries"};
mammals = {"fisher cat", "weasel", "skunk", "raccon", "squirrel"};
painters = {"Picasso", "Rembrandt", "Klee", "Rousseau", "Warhol"};
countries = {"Brazil", "Portugal", "Azores", "Guinea Bissau",
"Cape Verde"};
sports = {"golf", "badminton", "football", "tennis", "rugby"};
Первые три списка - еда, млекопитающие, художники - становятся элементами lists3
.Это просто списки, но TableForm
отображает их в таблице как строки .
(lists3 = {food, mammals, painters}) // TableForm
mydata
будет именем для lists3
транспонирован.Теперь три списка отображаются в виде столбцов .Вот что делает транспонирование: столбцы и строки переключаются.
(mydata = Transpose@lists3) // TableForm
Именно здесь проблема фактически начинается.Как мы можем добавить две дополнительные колонки (то есть списки для стран и видов спорта)?Итак, давайте поработаем с оставшимися двумя списками.
(lists2 = {countries, sports}) // TableForm
Так что мы можем присоединиться Transpose[mydata]
и lists2
....
(lists5 = Join[Transpose[mydata], lists2]) // TableForm
[В качестве альтернативы мы могли бы иметь Join
ed lists3
и lists2
, потому что вторая транспозиция, транспозиция mydata
отменяет предыдущую транспозицию.lists3
- это просто транспонирование mydata
.(и наоборот).]
In[]:= lists3 === Transpose[mydata]
Out[]:= True
Теперь нам нужно только Transpose
результат, чтобы получить желаемую финальную таблицу из пяти списков, каждый из которых занимает свой собственный столбец:
Transpose@lists5 // TableForm
Надеюсь, это поможет пролить свет на то, как добавить два столбца в таблицу.Я нахожу этот путь достаточно ясным.Вы можете найти другой способ прояснить ситуацию.