#kdb
Вопрос:
Я пытаюсь сложить два списка строк вместе. например:
Имя: Уильям Джозеф Чарльз Дэвид Майкл Уильям
Фамилия: Джонс Браун Джонсон Родригес Родригес Уилсон
и мне нужен full_name
список. Как я мог это сделать?
Я попытался просто добавить запятую
full_name:firstName,lastName
и
full_name:""sv(firstName;lastName)
но они, похоже, работают только с одной строкой, а не со списком.
Кто-нибудь знает, как суммировать 2 списка и получить третий?
Ответ №1:
Я думаю, было бы хорошо, если бы вы опубликовали пример именно того, что вы ищете. Кроме того, в целом, не рекомендуется использовать _
в именах переменных, так как это может быть ошибочно принято за drop
оператор
Одним из способов получения списка полных имен было бы разбиение обоих списков на " "
разделитель, используя vs
затем листание результатов и их объединение с помощью sv
оператора.
Это будет работать только в том случае, если в фамилии столько же элементов, сколько и в полном имени.
q)firstName:"William Joseph Charles David Michael William"
q)lastName:"Jones Brown Johnson Rodriguez Rodriguez Wilson"
q)show fullName:" " sv' flip " " vs' (firstName;lastName)
"William Jones"
"Joseph Brown"
"Charles Johnson"
"David Rodriguez"
"Michael Rodriguez"
"William Wilson"
Ответ №2:
Если Имя и фамилия уже являются списками строк формы одинаковой длины:
q)("William";"Joseph";"Charles")
"William"
"Joseph"
"Charles"
затем вы можете использовать каждый итератор для этого, например:
firstName {" " sv (x;y)}' lastName