Я хочу удалить повторяющиеся элементы строки1 из строки 2, а затем вывести новую строку. Мой код работает, только если дубликаты элементов расположены в последовательном порядке. Я хочу работать в любом порядке элементов. Пожалуйста, сообщите.
Текущий код:
set str1 "a 1 b 2 c 3 X Y Z"
set str2 "a 1 b 2 c 3 P Q R"
set results {}
set results [lmap a_elem $str1 b_elem $str2 {
if {$a_elem != $b_elem} {string cat $b_elem} else continue
}]
puts $results
Вывод следующего кода: P Q R
Однако, если
set str1 "a 1 b 2 c 3 X Y Z"
set str2 "P a 2 1 R c Q 3 b"
, тогда вывод будет: P a 2 1 R c Q 3 b
В основном то же самое, что и str2 без дублирования.