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

您所在的位置:网站首页 Python中组合数据类型遍历操作的比较 Python组合数据类型(列表、元组、集合、字典)

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

2024-06-25 09:38| 来源: 网络整理| 查看: 265

目录

一.序列类型。

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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3