python疑问4:list,tuple,dict,set区分

1.List
定义一个列表,列表内容数据类型可以不同,元素可以更改,可以嵌套list

//定义
name = ['Tom','Jack','Marry']
//长度计算
len(name) // Out:3
//访问列表内元素
name[0]//Tom
name[1]//Jack
name[2]//Marry
//追加元素
name.append('Jim') //['Tom','Jack','Marry','Jim']
//插入元素
name.insert(1,'pengyu') //['Tom','pengyu','Jack','Marry','Jim']
//删除末尾元素
name.pop() //['Tom','pengyu','Jack','Marry']
//删除指定位置
name.pop(2) //['Tom','pengyu','Marry']
//替换元素
name[0] = 'haha' //['haha','pengyu','Marry']

2.tuple
定义一个元组,一旦初始化不能修改

//定义
phone = ('iphone','ipad','huawei')
//特殊,定义一个元素的tuple,记得加逗号,消除与括号运算符的歧义
phone = ('ipad',)
//tuple元素内含list
phone = ('iphone','ipad',['huawei','oppo'])
phone[2][0]='iwatch'
phone[2][1]='vivo'
print(phone) // ('iphone','ipad',['iwatch','vivo'])
//定义一个不变的tuple,必须保证其内部元素也是不变的

3.dict
定义一个字典,内含键值对。需要注意的是dict的key必须是不可变对象。
因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。

要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,可以作为key,而list是可变的,就不能作为key

//定义
salary = {'xiaoming':2000,'Jim':5000,'Wang':4600}
//访问
salary['Wang'] //4600
//修改
salary['Jim'] = 3200// {'xiaoming':2000,'Jim':3200,'Wang':4600}
//判断key是否在字典里
'Jack' in salary //False
//删除key
salary.pop('Wang') //{'xiaoming':2000,'Jim':3200}
//如果key可变?
list = ['a','b','c']
salary[list] = 'pengyu' //报错

4.set
set定义一个key的集合,跟dict相似,但不储存value,key不能重复,其元素内部必须为不可变对象

//定义
color = set(['red','yellow','blue']) // {'red','yellow','blue'}
color = set(['red','yellow','blue','red','yellow']) //{'red','yellow','blue'}
//添加元素
color.add('black') // {'red','yellow','blue','black'}
//删除元素
color.remove('red') // {'yellow','blue','black'}
//并集,交集
color1 = set(['red','blue','black'])
color2 = set(['yellow','black','red'])
color1 & color2 // {'red','black'}
color1 | color2 // {'red','yellow','blue','black'}
    原文作者:王鹏宇
    原文地址: https://segmentfault.com/a/1190000013110993
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞