本文目錄一覽:
- 1、一些Python中的二維數組的操作方法
- 2、如何使用python將二維數組去重呢
- 3、Python數字列表去重,如何簡單的既去重還能按原來的順序輸出?
- 4、如何使用Python隨機生成一些一維或二維數組,判斷重複的數組,並刪除
- 5、python 數組去重的方法
- 6、python 列表去重(數組)的幾種方法
一些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);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/310017.html