Python(三)容器(list、tuple、dict、set)

一、列表list
list可以有任意類型元素

li = [1,2,3,'456',[1,2,3],{1:'one'}]

list訪問

print(li[0])
print(li[-1])

查找元素位置

print(li.index('456'))
print(li.index([1,2,3]))

添加元素

l_a = [1,2,3]
l_a.append(4)   //將元素添加進去
l_b = [6,7,8]
l_a.extend(l_b)  //將數組添加進去

刪除元素

del(li[-1]) 

判斷容器是否爲空

l_a = []
if not la:
    print('Empty') 
     //not xx 和 is None 不是一回事
if l_a is None:    
    //判讀容器是否爲空不能用is None,因爲即使容器爲空,在內存空間中也是一個類,而None代表什麼都不是
    print('None')

遍歷容器

for i in li:
for i in range(len(li)):

二、元組tuple(只讀)

t = (1,2,3,'456')
print(type(t))
t[0] = 'a'
t.append('x')  //拋出異常

三、給定一個數,找到數組中兩個數之和等於這個數的位置,如果找不到則返回-1,-1

def two_sum(numbers,target):
    for i in range(len(numbers)-1):
        for j in range(i+1,len(numbers)):
              if(numbers[i] + numbers[j]) == target:
                  return i,j
    return -1,-1
print(two_sum([2,7,11,15],18))

四、字典
一個key只能對應一個值,想對應多個元素可以放在數組裏面

d = {'a':1,'b':2,1:'one',2:'two'}
print(d)

訪問元素(根據key去訪問)

print(d['a'])
print(d[1])  

判斷元素是否存在(判斷key是否存在),找到key是O(1)的時間複雜度

print(3 in d)
print('c' in d)

刪除

del(d[3]) //刪除key

長度

print(len(d))

遍歷

1、根據key遍歷
for key in d:
    print(d[key])
2、根據key、value遍歷
for key,value in d.items():
    print(key,value)
3keys = d.keys()
    print(keys)

添加元素

d[3] = [1,2,3,4]  //直接添加key,value
d[3] = '1234'  //重寫原有的key所對應的value

五、集合set(元素唯一)(紅黑樹實現)

s_a = set(1,,2,2,3,4,5,6])
s_b = ([4,5,6,7,8,9])
print(s_a)//輸出(1,2,3,4,5,6)  即set裏面沒有重複的元素

判斷元素是否存在

print(5 in s_a) //返回True或者False

求並集

print(s_a | s_b)
print(s_a.union(s_b))

求交集

print(s_a & s_b)
print(s_a.intersection(s_b))

求差集 (A - A&B)

print(s_a - s_b)
print(s_a.difference(s_b))

對稱差(A|B)-(A&B)

print(s_a^s_b)
print(s_a.symmetric_difference(s_b))

修改元素

s_a.add('x')
s_a.update([4,5,60,70])  //添加數組

刪除元素

s_a.remove(70) //刪除的話必須知道要刪除的值

求長度

print(len(s_a))

循環

for i in s_a:
print(i)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章