元祖,字典,集合内置方法和深浅拷贝

元祖内置方法

元祖

只可取,不可更改的列表

作用

元祖一创建就被写死

定义方式

()内用逗号隔开多个元素(可以为任意数据类型)
如果元祖只有一个元素,必须加逗号

使用方法

1.索引取值

tup = tuple((1,2,3))
print(tup[0]) ##1

2.索引切片

tup = tuple((1,2,3))
print(tup[0:3]) ##(1,2,3)

3.for循环

tup = tuple((1,2,3))
for i in tup:
    print(i)

4.成员运算

tup = tuple((1,2,3))
print(0 in tup) ##False

5.len()长度

tup = tuple((1,2,3))
print(len(tup)) ##3

6.index()获取元素索引

tup = tuple((1,2,3))
print(tup.index(1)) ##0

7.count()计数

tup = tuple((1,2,3))
print(tup.count(2)) ##1

有无序

有序

可不可变

不存在可不可变

字典内置方法

作用

存储多个数据,对每一个数据具有描述

定义方式

{}内用逗号隔开多个键key(具有描述意义,不能为可变数据类型):值value(任意数据类型)对

使用方法

1.按key取值/按key修改值

dic = {'a':1,'b':2,'c':3}
print(dic['a']) ##1 取值
dic['b'] = 4
print(dic) ##{'a': 1, 'b': 4, 'c': 3} 修改值

2.没有就添加,有就修改

dic = {'a':1,'b':2,'c':3}
dic['d'] = 4
print(dic) ##{'a': 1, 'b': 2, 'c': 3, 'd': 4}

3.for循环

dic = {'a':1,'b':2,'c':3}
for i in dic:
    print(i) ##循环key

4.成员运算

dic = {'a':1,'b':2,'c':3}
print('a' in dic) ##True

5.len()长度

dic = {'a':1,'b':2,'c':3}
print(len(dic)) ##3

6.keys()/values()/items()

dic = {'a':1,'b':2,'c':3}
print(dic.keys()) ##dict_keys(['a', 'b', 'c'])
print(dic.values()) ##dict_values([1, 2, 3])
print(dic.items()) ##dict_items([('a', 1), ('b', 2), ('c', 3)])
for k,v in dic.items():
    print(k,v)
##  a 1
    b 2
    c 3

get()取值

dic = {'a':1,'b':2,'c':3}
print(dic.get('b',1)) ##2

update()扩展字典

dic1 = {'a': 1, 'c': 2}
dic2 = {'b': 1, 'd': 2}
dic1.update(dic2)
print(dic1) ##{'a': 1, 'c': 2, 'b': 1, 'd': 2}

fromkeys()创建一个值为None的字典

print(dict.fromkeys(dict.fromkeys([1,2,3,4])))
##{1: None, 2: None, 3: None, 4: None}

setdefault()有就不修改,没有就增加

dic = {'a':1,'b':2,'c':3}
dic.setdefault('j',2)
dic.setdefault('a',2)
print(dic) ##{'a': 1, 'b': 2, 'c': 3, 'j': 2}

有无序

无序

可不可变

可变

集合内置方法

作用

1.进行交集/并集/补集/差集运算
2.去重
3.乱序

定义方式

**{}内以逗号隔开多个元素(不能为可变数据类型)

使用方法

pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}

交集

print(pythoners & linuxers)

并集

print(pythoners | linuxers)

补集

print(pythoners ^ linuxers)

差集

print(pythoners - linuxers)

add()添加

pythoners.add('aacc')
print(pythoners) ##{'sean', 'nick', 'aacc', 'tank', 'jason'}

remove()没有报错/discard()没有不报错

pythoners = {'jason', 'nick', 'tank', 'sean'}
pythoners.remove('oscar1')
print(pythoners) ##报错
pythoners.discard('oscar1')
print(pythoners) ##不报错

pop()随机删除一个

pythoners = {'jason', 'nick', 'tank', 'sean'}
pythoners.pop()
print(pythoners) ##随机删除

有无序

无序

可不可变

可变

数据类型总结

存一个值

整型/浮点型/字符串

存多个值

列表/元祖/字典/集合

有序

字符串/列表/元祖

无序

字典/集合

可变

列表/字典/集合

不可变

整型/浮点型/字符串/元祖

深浅拷贝

拷贝

当lt2为lt1的拷贝对象,lt1内部的不可变数据变化,lt2变;lt1内部的可变数据变化,lt2变

浅拷贝

当lt2为lt1的浅拷贝对象时,lt1内部的不可变元素变化,lt2不变;lt1内部的可变元素变化,lt2变

深拷贝

当lt2是lt1的深拷贝对象时,lt1内部的不可变类型变化,lt2不变;lt1内部的可变类型变化,lt2不变

猜你喜欢

转载自www.cnblogs.com/793564949liu/p/11529632.html