首页 > 编程知识 正文

关于set二位数组去重python的信息

时间:2023-12-19 16:21:21 阅读:317973 作者:JNQD

本文目录一览:

一些Python中的二维数组的操作方法

一些Python中的二维数组的操作方法

这篇文章主要介绍了一些Python中的二维数组的操作方法,是Python学习当中的基础知识,需要的朋友可以参考下

需要在程序中使用二维数组,网上找到一种这样的用法:

#创建一个宽度为3,高度为4的数组

#[[0,0,0],

# [0,0,0],

# [0,0,0],

# [0,0,0]]

myList = [[0] * 3] * 4

但是当操作myList[0][1] = 1时,发现整个第二列都被赋值,变成

[[0,1,0],

[0,1,0],

[0,1,0],

[0,1,0]]

为什么...一时搞不懂,后面翻阅The Python Standard Library 找到答案

list * n—n shallow copies of list concatenated, n个list的浅拷贝的连接

例:

lists = [[]] * 3

lists

[[], [], []]

lists[0].append(3)

lists

[[3], [3], [3]]

[[]]是一个含有一个空列表元素的列表,所以[[]]*3表示3个指向这个空列表元素的引用,修改任何

一个元素都会改变整个列表:

所以需要用另外一种方式进行创建多维数组,以免浅拷贝:

lists = [[] for i in range(3)]

lists[0].append(3)

lists[1].append(5)

lists[2].append(7)

lists

[[3], [5], [7]]

之前的二维数组创建方式为:

myList = [([0] * 3) for i in range(4)]

如何使用python将二维数组去重呢

方案1:转化为虚数

x=c[:,0]+c[:,1]*1j

print('转化为虚数:',x)

print('虚数去重后:',np.unique(x))

print(np.unique(x,return_index=True))#return_index:输出的元素索引值

idx=np.unique(x,return_index=True)[1]

print('二维数组去重:n',c[idx])

#方案2:利用set

print('去重方案2:n',np.array(list(set([tuple(t) for t in c]))))

Python数字列表去重,如何简单的既去重还能按原来的顺序输出?

Python数字列表去重,还能按原来的顺序输出.

第一种方法

alist = [1, 2, 2, 4, 4, 6, 7]

b = []

for i in alist:

if i not in b:

b.append(i)

print(b)

源代码(注意源代码的缩进)

第二种方法

alist = [1, 2, 2, 4, 4, 6, 7]

formatList = list(set(alist))

formatList.sort(key=alist.index)

print (formatList)

源代码(注意源代码的缩进)

如何使用Python随机生成一些一维或二维数组,判断重复的数组,并删除

这个是列表。如果生成的随机数不在列表中就添加进去。

import random

def union(number):

    array=[]

    for i  in range(number):

        while True:

            tmp = random.randrange(1,100)

            if tmp not in array:

                array.append(tmp)

                break 

    return array

print (union(10))

python 数组去重的方法

如:arr =['a','d','e','a']

用: arr= sorted(set(arr), key=arr.index)

同: arr = list(set(arr))

arr.sort(key=arr.index)

⚠️直接set(arr)也可以去除重复元素,只是新数组的顺序就不是原来的顺序了。

如:arr=[{'text':wuyuan,'value':1},{'text':默认,'value':2},{'text':默认,'value':2},

{'text':wyy,'value':4}]

用: f = lambda x,y:x if y in x else x + [y]

arr = reduce(f, [[], ] + arr)

⚠️这里去除的字典里面的键值对必须是完全一样的。

python 列表去重(数组)的几种方法

function clear(arr) {// 1 如何获取数组中每一个元素出现的次数var o = {}; // 1.1 记录数组中元素出现的次数for (var i = 0; i arr.length; i++) {var item = arr[i]; // 数组中的每一个元素// o[item] = 1;// 1.2 判断o对象是否有当前遍历到的属性if (o[item]) {// 如果o[item] 存在,说明次数不为1o[item]++;} else {// 如果o[item] 不存在,说明是第一次出现o[item] = 1;}}// console.log(o); // 2 生成一个新的数组,存储不重复的元素var newArray = [];// 2.1 遍历对象o中的所有属性for (var key in o) {// 2.2 判断o对象中当前属性的值是否为 1 如果为1 说明不重复直接放到新数组中if (o[key] === 1) {newArray.push(key);} else {// o对象中当前属性 次数不为1 ,说明有重复的,如果有重复的话,只存储一次// 判断当前的newArray数组中是否已经有该元素 if (newArray.indexOf(key) === -1) {newArray.push(key);}}}return newArray;} var array = ['c', 'a', 'z', 'a', 'x', 'a'];var newArray = clear(array);console.log(newArray);

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。