【发布时间】:2020-04-07 20:04:50
【问题描述】:
我想从字符串 2 中删除 string1 的重复元素,然后输出新的字符串。我的代码仅在重复元素按顺序排列时才有效。 我想以任何元素顺序工作。请指教。
当前代码:
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 基本相同,没有重复删除。
【问题讨论】:
-
这能回答你的问题吗? Comparing two lists and returning the difference 本质上是一样的。您可以根据需要对答案进行调整,以仅返回差异的一侧。
-
@Jerry 是的,这确实回答了我的问题,需要像你提到的那样进行一些调整。谢谢!