list ,set 和 frozenset的 區別

2021-08-29 22:44:50 字數 1565 閱讀 7745

list的具體實現方法:見 or 印象筆記 python 列表原始碼解析

import numpy as np

class testtime:

@classmethod

def duplicatesinsortedarray(cls, size = 1000):

arr =

for i in range(size//2):

return arr

@classmethod

def notsortedarray(cls, low = 1, high = 1000, size = 1000):

return list(np.random.randint(low, high, size))

from testtime import testtime

from usingarray.sortcolors75 import solution

import time

for i in range(15,25):

size = 2 ** i

nums = testtime.notsortedarray(size=size)

ll = set(nums)

ll.add(1)

# start = time.time()

# end = time.time()

# start = time.time()

# nums.remove(nums[0]) # o(n)的時間複雜度

# end = time.time()

# print('size=', size, ' list remove time=', end - start)

# start = time.time()

# re = 10 in nums #o(n)的時間複雜度,不太確定

# end = time.time()

# print('size=', size, ' list exits time=', end - start)

# start = time.time()

# ll.add(0) # o(1)的時間複雜度

# end = time.time()

# print('size=', size, ' set add time=', end - start)

start = time.time()

re = 1 in ll # o(1)的時間複雜度

end = time.time()

print('size=', size, ' set remove time=', end - start)

暫且認為:

但是不能從實驗資料中確定x在list中(x in list)  的時間複雜度

set 中 add , remove ,x在set中(x in set) 的時間複雜度的時間複雜度為o(1)

set 和 frozenset 的區別為乙個可變,有add和remove方法,乙個不可變,沒有add 和remove方法。

List Set和Map介面遍歷方法

一 list集合 public class test 2 加強for迴圈遍歷 for string name list 3 迭代器遍歷 iteratoriterator list.iterator while iterator.hasnext 二 set集合 public class test 2 ...

List Set 集合概述

asp.net android ios開發 net培訓 期待與您交流!1 集合基本概念 collection定義了集合框架的共性功能。1 新增 add e addall collection 2 刪除 remove e removeall collection clear 3 判斷。contains...

List Set集合 Collections工具類

1 list集合 1 list是colleciton介面的乙個子介面,常用的實現類有arraylist linkedlist 2 list集合的特點 1 儲存單個元素,元素可重複,可以儲存多個null 2 儲存有序,存入順序和取出來的順序一致 例如 add 1 add 2 add 3 遍歷列印集合 ...