Qia*_* Li 4 wolfram-mathematica
我可以使用以下方法为ToString列表中每个元素的第一个组件执行一些操作(在本例中):
{ToString@#[[1]], Rest@#}~Flatten~1 & /@ {{1, 2}, {3, 4, 5}}
Run Code Online (Sandbox Code Playgroud)
但是,我有几个问题:
{ToString@#[[1]], Rest@#}~Flatten~1 & /@ {{1,
2}, 2, {3, 4, 5}}.如何使它也适用于这种情况?预期的产出是{{"1", 2}, 2, {"3", 4, 5}}.{{0}, {1, "2"}, {3, "4", 5}, {6, "7", 9, 10}}/.{#[[1]]->ToString[#[[1]]]})进行此类操作?因此,无论效率如何,请列出您可能想到的所有解决方案.非常感谢!
在我写完之前,我没有意识到这与Leonid的核心功能相同.或许这说明这可能比他相当复杂的功能更透明.
lst = {{1, 2}, 2, {3, 4, 5}};
Replace[lst, {a_, b__} :> {ToString@a, b}, 1]
Run Code Online (Sandbox Code Playgroud)
{{"1", 2}, 2, {"3", 4, 5}}
然后可以使用{x:Repeated[_, {4}], a_, b__} :> {x, ToString@a, b}, 1]第五个索引等.
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |