python03-list_tuple_dict_set

list、tuple、dict、set是python内置的四种数据类型。
一、 list
1. list即列表,是一种可变的有序的数据类型,也即其中的值是可以修改的,这一点很重要!list的定义方式很简单,举例: name=[‘sun’,’sui’,’jie’] 呢么name就是一个list。下面从以下几点来介绍list的特点。

1.1 内容。
list中的元素的数据类型可以是可变的,比如cah=[123,’def’,[‘a’,’f’]] 可以看到的是list是可以多级嵌套的,就像多维数组一样,索引的方式也与数组相同,后面说到。
空的list的表示方法是 cah=[]

1.2 查询
采用下标查询,如name[0]=’sun’注意一下几点:
a. 下标从0开始,同C语言是一样的;当然matlab是从1开始的;
b. 可以倒序查询。如name[-1]代表的就是最后一个元素,name[-2]代表 的就是倒数第二个。
c. 上面提到的多级嵌套的话,cah[2][1]=’a’ 跟C中的数组相同。
d. 查询长度的话使用len()函数。

1.3 插入
a. name.insert(1,’zhao’) 1是插入位置的下标号
b. name.append(‘li’) 这是直接在末尾插入的方式。

1.4 删除。
a. 如果是删除末尾的元素,name.pop()
b. 如果删掉中间的元素,name.pop(i) i是下标号

1.5 修改。
name[0]=’wang’ 即可完成修改。

二、 tuple(元组)
tuple与list最大的不同就在于tuple是不可修改的!所以与list相比较起来就更加安全些。tuple的定义方法也很简单。 num=(1,1,2),关于tuple中的有几点需要指明:

2.1 内容为空的话,同样是num=()

2.2 如果只有一个元素的话应该如何定义呢?num=(3) 这样的表示是不对的,python中约定这样的表示代表数字3,正确的表示方法是num(3,)加一个逗号!

2.3 如果一个tuple的内容为asd=(1,2,[‘a’,’b’]) ,此时我将list中的元素做如下修改: asd[2][0]=’d’,这是合法的!!

2.4 在2.3中可以看到,tuple的索引方式与list是相同的。

三、 dict
dictionary,字典,在其他语言中map的作用,采用键-值存储方式,简单说就是定义一个算式,输入“键”,这个算式就计算出存储位置,然后就可以直接取出来这个“值”。这个算式叫做“哈希公式”。从上边的原理描述中就可以看到dict类型与list的两个很重要的不同就是:

  • dict类型的搜索速度很快,但是占用的内存也更多,是一种空间换时间的存储方式;而list与之恰好相反。

  • dict是一种无序的存储!而list和tuple是有序的。

下面就开始dict的介绍:

3.1 dict的定义。
class={‘sui’:56,’sun’:34,’li’:65} 键和值之间用冒号隔开

3.2 检索。
class[‘sui’]
如果说’sui’并不是class中的一员,那么这个语句会报错的,有两种方法来检测这一点:

  • ‘sui’ in class 如果返回值为TRUE,说明’sui’在class中

  • class.get(‘sui’,’没有啊’) 如果class中没有’sui’,则会返回’没有啊’

3.3 修改
class[‘sun’]=34

3.4 插入
class[‘li’]=34 直接写一个新的就可以,如果有相同的,由于键不可以重复,所以会直接覆盖!

3.5 删除
class.pop(‘sui’)
最后,注意一点,由于dict是每一个键对应一个存储位置,所以键的数据类型一定要是不可变的,如整数、字符串等,不可以是list!

四、 set
set可以看做是dict的一种简单的变体,唯一的区别是set只有键,没有值。所以,set其实就是一堆无序列不重复的数。不重复是它的重要特征。
4.1 创建
set要借助list完成创建,比如输入:name=set([‘a’,’d’,’s’]),则name={‘a’,’d’,’s’}

4.2 增添与删减
由于set是无序的,所以像insert、pop这种使用于有序的词是不适用的,set的增减使用的是name.add(‘e’) name.remove(‘a’)

4.3 运算
由于两个每一个set都是没有重复元素的,所以他们可以看成集合进行运算。如 & |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值