我有一个非常大的数据表,例如:
lista = {{2,8},{3,4},{5,2}..}
我想将 x 添加到每个元素中,这样就可以了
lista ={{x,2,8},{x,3,4},{x,5,2}.....}
在我看来,这应该是微不足道的,但我一直无法找到解决方案。
我将不胜感激任何帮助。
我有一个非常大的数据表,例如:
lista = {{2,8},{3,4},{5,2}..}
我想将 x 添加到每个元素中,这样就可以了
lista ={{x,2,8},{x,3,4},{x,5,2}.....}
在我看来,这应该是微不足道的,但我一直无法找到解决方案。
我将不胜感激任何帮助。
Join
在这里很有用:
Map[Join[{x}, #] &, {{2, 8}, {3, 4}, {5, 2}}]
这几乎是Appending to the rows of a table的副本和Prepend 0 to sublists的完全相同的副本,该站点上应该询问您的问题。这些线程中提供了更多带有计时的方法,但这里有两个很好的方法可供开始:
lista = {{2, 8}, {3, 4}, {5, 2}};
ArrayPad[lista, {{0, 0}, {1, 0}}]
{{0, 2, 8}, {0, 3, 4}, {0, 5, 2}}
或者:
ArrayFlatten @ {{0, lista}}
{{0, 2, 8}, {0, 3, 4}, {0, 5, 2}}
所以我有两种方法可以做到这一点;它们都工作得很好,但我认为后者由于技术原因更好;虽然我没有测试过他们的表现:
第一种方法:
lista = RandomInteger[{0, 10}, {10, 2}]
(*{{1, 3}, {0, 3}, {5, 5}, {4, 2}, {1, 7}, {3, 6}, {2, 2}, {3, 1}, {7, 6}, {8, 10}}*)
For[i = 1, i <= Length[lista], i++, PrependTo[lista[[i]], x]]
lista
(*{{x, 1, 3}, {x, 0, 3}, {x, 5, 5}, {x, 4, 2}, {x, 1, 7}, {x, 3, 6}, {x, 2, 2}, {x, 3, 1}, {x, 7, 6}, {x, 8, 10}}*)
第二种方法:
lista = RandomInteger[{0, 10}, {10, 2}]
(*{{0, 5}, {6, 0}, {4, 6}, {3, 2}, {8, 1}, {4, 9}, {0, 5}, {9, 10}, {3,0}, {8, 4}}*)
X = ConstantArray[x, Length[lista]];
lista = Transpose[Prepend[Transpose[lista], X]]
(*{{x, 0, 5}, {x, 6, 0}, {x, 4, 6}, {x, 3, 2}, {x, 8, 1}, {x, 4, 9}, {x,0, 5}, {x, 9,10}, {x, 3, 0}, {x, 8, 4}}*)