python list tuple dict set区别_Python入门之list,tuple,dict,set的区别

list,tuple,dict,set是Python内置的四种数据类型,有些在外观上有些类似,所以在这里总结一下这四者的特征和不同,方便日后使用。

List:就是最常用的有序集合,示例代码:

l = ["Leo","Leon","Lee"]

print l

#该步骤为创建list,输出值为:['Leo', 'Leon', 'Lee']

print l[0]

#该步骤为根据索引0查看list的某一值,输出值为:Leo

print l[-1]

#该步骤为查看list的最后一个值,输出值为:Lee

l.append("Li")

print l

#该步骤为在list最后添加一个新的值Li,输出值为:['Leo', 'Leon', 'Lee', 'Li']

l.insert(0,'Micheal')

print l

#该步骤为在索引0处添加一个新的值Micheal,然后原索引0及其后面的值都往后移一位,输出值为:['Micheal', 'Leo', 'Leon', 'Lee', 'Li']

l.pop()

print l

#该步骤为删除list的最后一项,输出值为:['Micheal', 'Leo', 'Leon', 'Lee']

l.pop(2)

print l

#该步骤为删除list中索引为2的那一项,输出值为:['Micheal', 'Leo', 'Lee']

l[2]='Li'

print l

#该步骤为将索引为2的值修改为Li,输出值为:['Micheal', 'Leo', 'Li']

以上代码已经包含了List的常见操作,总结一句话就是:List是一个有序的,可以修改删除的集合。

Tuple:翻译过来就是元组的意思,与list相似,也是有序的,只不过tuple一创建完,就不可以再修改和删除了。示例代码:

t = ('Li','Lee','Leo','Leon')

print t

#该操作是创建一个tuple,输出值为:('Li', 'Lee', 'Leo', 'Leon')

print t[1]

#通过索引将索引为1的值输出,输出值为:Lee

print t[-1]

#找出tuple的最后一个值,输出值为:Leon

t1 = (1)

t2 = (1,)

print t1

#1

print t2

#(1,)

下面我们来对tuple做一些总结:

创建tuple时,用的是(),而list用的是[]

tuple可以像list那样,通过索引来查找某一个值,但是并不能用append,pop,或者直接用类似t(1)='Micheal'的方式对tuple进行数据上的修改

tuple在创建单个元素是,需要在后面加上一个逗号,因为()既可以用来表示tuple,也可以用来表示运算时的优先级,所以需要在单个元素后加个逗号,以示区分。多元素时,在最后加不加逗号都不会对tuple产生影响

有一种情况下,tuple看上去是可以改变的。那就是在tuple内部存一个list,在这种情况下,list内是可以发生变化的,因为tuple只是指向了这个list,只要你不修改这个指向,list怎么变都可以,在tuple看来,它仍然是不变的。

dict:dict其实是dictionary的缩写,翻译过来就是字典。用Java的话来说,它就是一个键值对的集合。示例代码:

d = {'Lee':100,'Leon':99,'Li':98}

print d

#该步骤是创建一个dict,输出值为:{'Lee': 100, 'Leon': 99, 'Li': 98}

print d['Lee']

#该步骤是通过key来获取某个dict的值,输出值为:100

if 'Li' in d:

print d['Li']

#该步骤先判断了Li这个key存不存在于d中,如果存在才输出Li的值,这样会更安全一些,输出值为:98

print d.get('Li')

#该步骤与上面的先判断后输出是等价的,get方法会先判断d中是否存在Li,如果存在则返回其值,如果不存在则返回None,输出值为:98

d['Leon'] = 97

d['Leo'] = 96

print d

#如果该key存在,则修改该key对应的值,如果key不存在,则添加进d中,输出值为:{'Leo': 96, 'Lee': 100, 'Leon': 97, 'Li': 98}

for key in d:

print key

#循环输出d中的所有key值,输出值为:Leo

#Lee

#Leon

#Li

dict的一些特征:

查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。

不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。

由于dict是按 key 查找,所以,在一个dict中,key不能重复。Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。

dict存储的key-value序对是没有顺序的。

set:有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。示例代码:

s = set(['A','B','C','C'])

print s , len(s)

#该步骤是创建一个set,当set中有重复项,会自动去除重复项,输出值为:set(['A', 'C', 'B']) 3

s1 = set([('Lee', 95), ('Leon', 98), ('Li', 99)])

for x in s1:

print x[0]+':',x[1]

#循环输出s1中的值,输出值为:Leon: 98

#Li: 99

#Lee: 95

s.add('D')

s.add('D')

print s

#当add中的值不存在于s中,则会将其添加进s中,如果已存在,则会被忽略,不会报错,输出值为:set(['A', 'C', 'B', 'D'])

s.remove('A')

print s

#当remove中的值存在于s中,则会将该值从s中去除,如果不存在则会报错,输出值为:set(['C', 'B', 'D'])

总结一下:

list是一个可修改可删除的有序集合。

tuple是一个不可修改不可删除的有序集合。

dict是一个可修改可删除的无序键值对集合。

set是一个可修改可删除但不可重复的无序集合。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值