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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章