new set去重复杂的数组类型
时间: 2023-05-19 20:07:25 浏览: 82
可以使用以下代码实现:
```python
my_list = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
my_set = set(my_list)
my_new_list = list(my_set)
print(my_new_list)
```
这段代码将会输出去重后的列表 `[1, 2, 3, 4]`。
相关问题
jsnew set去重原理
JavaScript中的Set数据结构是一种集合类型,它只存储唯一的值。当向Set中添加一个值时,它会先判断这个值是否已经存在于Set中,如果已经存在,则不会再次添加,否则会将这个值加入Set中。
Set去重的原理就是利用了这个特性。我们可以将一个包含重复元素的数组转换成一个Set,由于Set只存储唯一的值,所以重复的元素会被自动去重。然后再将Set转换回数组,就得到了一个去重后的数组。
例如,下面的代码演示了如何使用Set实现数组去重:
```
const arr = [1, 2, 2, 3, 3, 3];
const set = new Set(arr);
const uniqueArr = Array.from(set);
console.log(uniqueArr); // [1, 2, 3]
```
在这段代码中,我们先将数组`arr`转换成一个Set,然后再将Set转换回数组`uniqueArr`,这样就得到了一个去重后的数组。
js在接口返回的数据里用new Set去重后还是重复数据
JavaScript中的Set是一种特殊的集合类型,它不允许有重复的值。当你将数组的内容传递给Set构造函数,Set会自动去除其中的重复项。例如:
```javascript
let arr = [1, 2, 2, 3, 4, 4];
let uniqueSet = new Set(arr);
console.log(uniqueSet); // 输出:Set(3) {1, 2, 3, 4}
```
在这个例子中,虽然原数组中有重复的数字,但在创建Set后,[2, 4]这两个重复的元素只会被保留一次。
然而,如果你发现Set的结果仍然是重复数据,可能是因为你传递给Set的不是原始值(如字符串或基本类型的数值),而是引用类型(如对象)。由于JavaScript中两个不同引用的对象即使内容一样也被视为不同的值,所以可能会出现看起来重复但实际上不重复的情况。例如:
```javascript
let obj1 = {a: 1};
let obj2 = {a: 1}; // 这是另一个对象,尽管它们有相同的属性
let objSet = new Set([obj1, obj2]);
console.log(objSet); // 输出:Set(1) {Object {a: 1}}
```
在这种情况下,你需要确保Set里的元素是真正的独一无二,如果是引用类型,需要检查它们是否指向同一个内存地址。如果想要基于对象内容而非引用去重,可以先转换成JSON字符串或序列化后再处理。
阅读全文