Python组合数据类型(列表、元组、集合、字典)

目录

一.序列类型。

1.列表。

(1)创建列表

(2)访问列表元素。

(3)添加列表元素。

(4)元素排序。

(5)删除列表元素。

(6)列表推导式。

2.元组。

二.集合类型。

1.创建集合。

2.集合的常见操作。

3.集合推导式。

三.映射类型。

1.创建字典。

2.字典的访问。

3.字典元素的添加和修改。

(1)添加元素。

(2)修改元素。

4.字典元素的删除。

5.字典推导式。

四.组合数据类型应用运算符。

1.“+”运算符。

2.“ * ”运算符。

3.“ in ”,“ not in ”运算符。


正文

一.序列类型。

        Python中的序列类型支持双向索引:正向递增索引和反向递减索引。举例如下:
         Python中常用的序列类型主要有三种:字符串(str)、列表(list)、元组(tuple)。

之前已总结过字符串相关基本知识:http://t.csdnimg.cn/jBu4W

1.列表。

        Python利用内存中一段连续的空间存储列表。列表没有长度的限制,可以包含任意元素。

(1)创建列表

①使用中括号" [ ] "创建列表。示例如下:

list_one = []

[ ]中包括的是列表元素,列表元素可以是整型、浮点型、字符串等基本类型,也可以是列表、元组、字典等组合类型,还可以是其他自定义类型;列表元素的类型可以相同也可以不同;列表中的元素使用“ , ”分隔。
②使用list()函数创建列表。
list()函数接收一个可迭代类型的数据,返回一个列表。示例如下:

li_one = list(1)  #因为int类型的数据不是可迭代类型,所以列表创建失败
li_two = list('python')      #字符串类型是可迭代类型
li_three = list([1,'python'])       #列表类型是可迭代类型

可迭代对象:支持通过for...in...语句迭代获取数据对象的就是可迭代对象。字符串、列表、集合和字典都是可迭代对象。

(2)访问列表元素。

①以索引方式访问列表元素。
格式:list [ n ]。表示访问列表list中索引为n的元素。
②以切片方式访问列表元素。
      切片用于截取列表中的部分元素,获取以一个新列表。切片的语法格式如下:list [m : n : step ]。以上格式表示按步长step获取列表list中索引m~n对应的元素(不包括list [n]),step默认为1;m和n可以省略,若m省略,表示切片从列表首部开始,若n省略,表示切片到列表末尾结束。示例如下:

li_one = ['p','y','t','h','o','n']
print(li_one[1:4:2]) #按步长2获取列表中索引1~4对应的元素
print(li_one[2:]) #获取列表中索引2~末尾对应的元素
print(li_one[:])  #获取列表中的所有元素

③在循环中依次访问列表元素。
      列表是一个可迭代对象,在for...in...语句中逐个访问列表中的元素,示例如下:

li_one = ['p','y','t','h','o','n']
for i in li_one:
   print(i,end = ' ')

(3)添加列表元素。

①append()方法:用于在列表末尾添加新元素。示例如下:

list_one = [1,2,3,4]
list_one.append(5)
print(list_one)

②extend()方法:用于在列表末尾一次性添加另一个列表中的所有元素。示例如下:

list_one = [1,2,3]
list_two = [4,5,6]
list_one.extend(list_two)
print(list_one)

③insert()方法:用于按照索引将新元素插入列表的指定位置。示例如下:

li_one = ['a','b','c']
li_one.insert(1,'e')
print(li_one)

(4)元素排序。

①sort()方法:sort()方法用于按特定顺序对列表元素排序。
语法格式如下:sort(key=None,reverse=False)
       以上格式中参数key用于指定排序规则,该参数可以是列表支持的函数,默认值为None;参数reverse用于控制列表元素排序的方式,该参数可以取值True或者False,取值为True 表示降序排列,取值为False(默认值)表示升序排列。
       使用sort()方法对列表元素排序后,有序的元素会覆盖原来的列表元素,不产生新列表。示例如下:

li_one = [4,2,5,1]
li_one.sort()
print(li_one)

②sorted()方法:用于按升序排列列表元素,该方法的返回值是升序排列后的新列表,排序操作不会对原列表产生影响。示例如下:

list_one = [4,3,2,1]
list_two = sorted(list_one)
print(list_one)
print(list_two)

③reverse()方法:用于逆置列表,即把原列表中的元素从右至左依次排列存放。示例如下:

li = ['a','b','c','d']
li.reverse()
print(li)

(5)删除列表元素。

①del语句:用于删除列表中指定位置的元素。示例如下:

name = ['Lucy','Lily','John']
del name[0]
print(name)

del语句也可以删除整个列表。
②remove()方法:用于移除列表中的某个元素,若列表中有多个匹配的元素,remove()只移除匹配到的第1个元素。示例如下:

li = ['h','e','l','l','e']
li.remove('e')
print(li)

③pop()方法:用于移除列表中的某个元素,若未指定具体元素,则移除列表中的最后1个元素。示例如下:

number = [1,2,3,4,5]
print(number.pop()) #移除列表中的最后一个元素,会打印被移除的元素
print(number.pop(1)) #移除列表中索引为1的元素,会打印被移除的元素
print(number)

④clear()方法:用于清空列表。示例如下:

number = [1,2,3]
number.clear()
print(number) #会输出一个空列表:[]

(6)列表推导式。

        列表推导式的基本格式:[ exp for x in list ]。其中,for...in...用于遍历列表(或其他可迭代对象),exp用于在每层循环中对列表中的元素进行运算。示例如下:

ls = [1,2,3,4]
ls_one = [data*data for data in ls]
print(ls_one)

2.元组。

        元组的表现形式为一组包含在圆括号“()”中,由逗号分隔的元素。元组中元素的个数、类型不受限制。
①使用圆括号可以直接创建元组。示例如下:t = (1,2,3)    #即创建了一个包含多个元素的元组。
注意:若元组中只有一个元素,该元素之后的“ , ”不能省略。(即应写为 t = (1, ) )
②使用内置函数tuple()创建元组:当函数的参数列表为空时该函数创建空元组,当参数为可迭代对象时该函数创建非空元组,示例如下:

t1 = tuple() #创建空元组
t2 = tuple([1,2,3]) #利用列表创建元组(1,2,3)
t3 = tuple("pyt") #利用字符串创建元组('p','y','t')
t4 = tuple(range(3)) #利用可迭代对象创建元组(0,1,2)

③可以通过索引和切片访问元组的元素,也可以在循环中遍历元组。示例如下:

t = (1,2,3,4,5,6)
print(t[2]) #以索引方式访问元组元素
print(t[2:4]) #以切片方式访问元组元素
for i in t:
    print(i,end = '') #在循环中遍历元组

注意:元组是不可变类型,元组中的元素不能修改,即它不支持添加元素、删除元素和排序操作。

二.集合类型。

       通常用大写字母(如A、B、S)表示集合,用小写字母(如 a、b、c)表示集合中的元素。
集合中的元素具有以下3个特征:①确定性:集合中的每个元素都是确定的。②互异性:集合中的元素互不相同。③无序性:集合中的元素没有顺序,若多个集合中的元素仅顺序不同,那么这些集合本质上是同一集合。
       集合与列表和元组的区别是:集合中的元素无序但必须唯一。
      并且Python 要求放入集合中的元素必须是不可变类型(Python中的整型、浮点型、字符串类型和元组属于不可变类型,列表、字典和集合本身都属于可变的数据类型)。

1.创建集合。

①使用{ }可以直接创建集合,举例:s1 = {1,2,3}
②使用内置函数set()也可以创建集合,该函数的参数列表可以为空,此时该函数创建一个空集合,举例:s = set ()
注意:使用{ }不能创建空集合(不包含元素的{ }创建的是空字典),空集合只能利用set()函数创建。
        使用set()函数创建非空集合,需要为该函数传入可迭代对象,示例如下:

s1 = set([1,2,3]) #传入列表,遍历后会输出{1,2,3}
s2 = set('pyt') #传入字符串,遍历后会输出{'p','y','t'}

2.集合的常见操作。

3.集合推导式。

格式:{exp for x in set if cond}
解释:在 if 的条件下遍历集合set,以集合的形式输出符合条件的元素exp。

三.映射类型。

       映射类型以键值对的形式存储元素。字典(dict)是Python唯一的内置映射类型,字典的键必须遵循以下两个原则:①每个键只能对应一个值,不允许同一个键在字典中重复出现。②字典中的键是不可变类型。
       字典的语法格式:{键1:值1,键2:值2,...,键N:值N}
       字典的值可以是任意类型,但键不能是列表或字典类型。

1.创建字典。

①使用{ }可以直接创建字典。
举例:d = {'A' : '123' , 'B' : 135}
②使用内置函数dict()也可以创建字典。
举例:d = dict({'A' : '123' , 'B' : 135})

2.字典的访问。

       字典的值利用键访问,语法格式为:字典变量[键]。
①使用方法get(),该方法根据键从字典中获取对应的值,若指定的键不存在则返回默认值(default)。get()方法的语法格式如下:d.get (key[, default])
举例:d = {'A' : 12}     print(d.get('A'))
②字典涉及的数据分为键、值和元素(键值对),除了直接利用键访问值外,Python还提供了用于访问字典中所有键、值和元素的内置方法keys()、values()和items(),示例如下:

dic = {'name':'Lily','age':23}
print(dic.keys()) #获取所有键
print(dic.values()) #获取所有值
print(dic.items()) #获取所有元素

3.字典元素的添加和修改。

(1)添加元素。

①当字典中不存在某个键时,在字典中新增一个元素使用以下格式:字典变量[键]=值。举例如下:

dic = {'name':'Lily','age':23}
dic['score']=78
print(dic)

②使用update()方法也可以添加元素。举例:dic.update(score=89)

(2)修改元素。

本质是通过键获取值,再重新对元素进行赋值。示例如下:

dic = {'name':'Lily','age':23}
dic.update(name='Amy') #使用update()方法修改元素
dic['age']=67 #通过指定键修改元素
print(dic)

4.字典元素的删除。

(1)pop()方法:可根据指定键删除字典中的指定元素,若删除成功,该方法返回目标元素的值。示例如下:

dic = {'name':'张三','age':23}
print(dic.pop('name')) #输出 张三
print(dic) #输出{'age':23}

(2)popitem()方法:可以随机删除字典中的元素,若删除成功,该方法返回被删除的元素。示例如下:

dic = {'name':'张三','age':23}
print(dic.popitem()) 
print(dic)

(3)clear()方法:用于清空字典中的元素。示例如下:

dic = {'name':'李四','score':23}
dic.clear()
print(dic)

5.字典推导式。

格式如下:{ new_key : new_value for key , value in dict.items() }

四.组合数据类型应用运算符。

针对数字类型的运算符对组合数据类型同样适用。

1.“+”运算符。

       Python的字符串、列表和元组支持“+”运算符。与数字类型不同,组合数据类型相加不进行数值的累加,而是进行数据的拼接。示例如下:

str1 = "hello "
str2 = "world"
print(str1+str2) #输出hello world

2.“ * ”运算符。

       字符串,列表和元组可以与整数进行乘法运算,运算之后产生的结果为与原数据整数倍的拼接。以列表类型为例,示例如下:

li_one = [1,2,3]
print(li_one * 3)
#输出[1,2,3,1,2,3,1,2,3]

3.“ in ”,“ not in ”运算符。

        这两个运算符称为成员运算符,用于判断某个元素是否属于某个变量。Python的字符串、列表、元组、集合和字典都支持成员运算符。示例如下:

li_one = [1,2,3]
print(1 in li_one) #输出:True
print(1 not in li_one) #输出:False
  • 30
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值