data =: '"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH"`
];._1 data
MARY
,
PATRICIA
,
LINDA
,
BARBARA
,
ELIZABETH
(one more blank line here)
所以我想跳过每一行:
]`(0&#);._1 data
MARY
PATRICIA
LINDA
BARBARA
ELIZABETH
(one more blank line here)
不按我想象的那样工作 我经常遇到这种情况。例如,当使用这样的代码时:
]`(Do nothing. Just skip. Just SKIP!!!)@.(some condition)
答案 0 :(得分:2)
你可以这样做,通过在删除最后一个LF之后附加一个private
(重要的是这是一个列表而不是一个原子)然后再次使用剪切,','
基于最终价值。
;.
空白线不是真正的空白,而是形状的神器。
( ];._2) @: ((,','),~ }:) @: (];._1) data
MARY
PATRICIA
LINDA
BARBARA
ELIZABETH
插入附加 $(];._2) @: ((,','),~ }:) @: (];._1) data
5 1 9
清除此内容
,/
这并没有真正解决你的问题"什么都不做"跳过的问题,但有讽刺想要什么也不做,同时想要跳过!跳过会做某事,不会吗?这可能表明复制,/ @: (];._2) @: ((,','),~ }:) @: (];._1) data
MARY
PATRICIA
LINDA
BARBARA
ELIZABETH
$,/ @: (];._2) @: ((,','),~ }:) @: (];._1) data
5 9
等其他方法可能比议程#
更好,但人们必须知道具体案例。
答案 1 :(得分:0)
如果要跳过列表的每个第二个元素,可以使用(_2 {.\ ])
换句话说:将列表分成几组并获得每对中的第一个元素。
答案 2 :(得分:0)
过滤掉列表中每个第二个元素的几个选项:
mylist=: ];._1 data
(#~ 2 -.@| i.@#) mylist NB. retain even indexed items
MARY
PATRICIA
LINDA
BARBARA
ELIZABETH
(_2 {.\ ]) mylist NB. get first item of pairs
MARY
PATRICIA
LINDA
BARBARA
ELIZABETH
解析这些数据的几个选项:
> '","' splitstring }. }: data
MARY
PATRICIA
LINDA
BARBARA
ELIZABETH
require 'csv'
> (',' ; '"') fixdsv data,LF
MARY
PATRICIA
LINDA
BARBARA
ELIZABETH