从列表中删除重复项(在vim中)

Rem*_*man 7 vim double list duplicates

这是我的清单:

['02', '03', '03', '16', '17', '17', '28', '29', '29']
Run Code Online (Sandbox Code Playgroud)

我想知道如何从此列表中删除重复项.

当我将一个项目添加到列表中以检查该项目是否已经在列表中时(是为了避免重复?),是否也可以这样做?

ZyX*_*ZyX 14

尝试

let list=['02', '03', '03', '16', '17', '17', '28', '29', '29']
let unduplist=filter(copy(list), 'index(list, v:val, v:key+1)==-1')
Run Code Online (Sandbox Code Playgroud)

.关于第二个问题,请参阅:h index().

顺便说一句,如果

  1. 所有列表项都是字符串;
  2. 没有空字符串可能;
  3. 你不关心列表项的顺序

那么你应该使用一个词典代替:对于大量的字符串来说,搜索重复项更快(而且实际上不是必需的).