Удаление дубликатов, но не пустых элементов, и сохранение дублирующих элементов в другом массиве

Это также можно сделать, используя partial из стандартной библиотеки functools , например:

from functools import partial
#(...)
action_with_arg = partial(action, arg)
button = Tk.Button(master=frame, text='press', command=action_with_arg)

0
задан Sachihiro Takamori 2 March 2019 в 22:01
поделиться

4 ответа

Как упомянуто в комментариях, которые вы ищете включает в себя :

const lis = ["", "5", "2", "", "2", ""];

const not_dupl = [], dupl = [];

for(const i of lis) {
  console.log(i);
  if(!not_dupl.includes(i) || i === '')
    not_dupl.push(i);
  else
    dupl.push(i);
}

console.log(not_dupl, dupl);

PS: i является плохим именем для неиндекса, также почему lis и не просто list, почему not_dupl вместо nonDuplicates?

0
ответ дан Jonas Wilms 2 March 2019 в 22:01
поделиться
var mylist = ["", "5", "2", "", "2", ""];
    var not_dupl =[];
    var dupl = [];
    for (var i=0; i< mylist.length; i++){
        if (not_dupl.includes(mylist[i]) === false || mylist[i]==='' ){
            not_dupl.push(mylist[i])
        } else {
            dupl.push(mylist[i])
        }
    }
    console.log(not_dupl);
    console.log(dupl);
0
ответ дан Sachihiro Takamori 2 March 2019 в 22:01
поделиться

Вы можете сделать это с помощью набора:

Javascript:

 var lis = ["", "5", "2", "", "2", ""];
 var dups = new Set();
 var dupl = a.filter(function(i){isDup=dups.has(i);dups.add(i);return isDup && i!=""});
0
ответ дан Alain T. 2 March 2019 в 22:01
поделиться

Есть несколько способов сделать это, вы можете использовать array.includes(object) или проверить array.indexOf(object) !== -1, что поддержка include относительно плоха в Internet Explorer и Opera, так что вам следует устать от этого.

let lis = ["", "5", "2", "", "2", ""]

let not_dupl = [];
let dupl = [];

lis.forEach((element, index, array) => {
  if (element === "" || not_dupl.indexOf(element) === -1) {
    not_dupl.push(lis[index]);
  } else {
  	dupl.push(lis[index]);
  }
})

console.log(not_dupl); //# expected output ["", "5", "2", "", ""]
console.log(dupl); //# expected output ["2"]

0
ответ дан Nils Kähler 2 March 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: