列表元组字典与集合
Posted bijian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表元组字典与集合相关的知识,希望对你有一定的参考价值。
一、列表
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
1、使用[ ]或list()创建列表
list1 = [] list2 = [‘a‘,‘abc‘,‘apple‘,‘Monday‘]
empty = list()
empty
2、用list()转换其他数据类型为列表
list("apple")#字符串转列表 tuple_1 = ("apple","fire","ready") list(tuple_1)#元祖转列表 #split()依据分隔符切割字符串为若干字串组成的列表 data = ‘1/22/333‘ data.split(‘/‘) #连续分隔符返回列表会出现空串元素 data_1 = ‘a/b//c//d/e‘ data_1.split(‘/‘) data_1.split("//")#分隔符改变
3、获取元素、修改元素以及使用切片提取元素
(1)获取元素
data = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] print(data[0]) print(data[-1]) #当偏移量小于起始位置或大于末尾位置时会发生异常 print(data[5])#IndexError: list index out of range
(2)修改元素
data = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data[1] = ‘delete_1‘ print(data)
(3)使用切片提取元素
data = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data[0:2] #从列表开头开始每两个提取一个元素 data[::2]#[‘apple‘, ‘pink‘] #尾部提取 data[::-2]#[‘blog‘, ‘delete‘] #列表逆序 data[::-1]#[‘apple‘, ‘delete‘, ‘pink‘, ‘blog‘]
4、包含列表的列表
data_0 = [‘apple_0‘,‘delete_0‘,‘pink_0‘,‘blog_0‘] data_1 = [‘apple_1‘,‘delete_1‘,‘pink_1‘,‘blog_1‘] data_2 = [‘apple_2‘,‘delete_2‘,‘pink_2‘,‘blog_2‘] data = [data_0,data_1,data_2] print(data)#[[‘apple_0‘, ‘delete_0‘, ‘pink_0‘, ‘blog_0‘], [‘apple_1‘, ‘delete_1‘, ‘pink_1‘, ‘blog_1‘], [‘apple_2‘, ‘delete_2‘, ‘pink_2‘, ‘blog_2‘]] print(data[1])#[‘apple_1‘, ‘delete_1‘, ‘pink_1‘, ‘blog_1‘] print(data[1][1])#delete_1
5、主要方法
#append()添加元素到尾部 data = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data.append(‘form‘) print(data) #extend()或+=合并列表 data_1 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data_11 = [‘apple_11‘,‘delete_11‘] data_1.extend(data_11) print(data_1) data_1+=data_11 print(data_1) #insert()指定位置插入元素 data_2 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data_2.insert(2,‘hahaha‘) print(data_2) #del删除指定位置元素 data_3 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] del data_3[1] print(data_3) #remove删除指定值的元素 data_4 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data_4.remove(‘apple‘) print(data_4) #pop获取并删除指定位置元素(不指定偏移量默认为-1) data_5 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data_5.pop() print(data_5) data_5.pop(1) print(data_5) #index()查询特定值位置元素 data_6 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] data_6.index(‘delete‘) #in判断值是否存在 data_7 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] ‘apple‘ in data_7#True ‘apple_1‘ in data_7#False #count()特定值出现次数 data_8 = [‘apple‘,‘delete‘,‘apple‘,‘delete‘,‘pink‘,‘apple‘,‘blog‘] data_8.count(‘apple‘)#3 #使用join()转换为字符串****** data_9 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] ‘,‘.join(data_9)#‘apple,delete,pink,blog‘ func = ‘#‘ joind = func.join(data_9) print(joind) joind_1 = joind.split(func)#join()是split的逆过程 print(joind_1) #len()获取长度 data_10 = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] len(data_10)#4 #sort重新排列元素 #sort()改变原列表内容,sorted()原列表内容不改变 #元素是数字,默认从小到大,reverse = True可改为降序 data_11 = [‘b‘,‘appl‘,‘pi‘,‘del‘] data_11_sd = sorted(data_11) data_11_sd#[‘appl‘, ‘b‘, ‘del‘, ‘pi‘] print(data_11)#[‘b‘, ‘appl‘, ‘pi‘, ‘del‘] print(‘*‘*20) data_11.sort() data_11#[‘appl‘, ‘b‘, ‘del‘, ‘pi‘] #元素是数字时 num = [2,1,4.0,3] num.sort() num #[1, 2, 3, 4.0] num.sort(reverse = True) num #[4.0, 3, 2, 1] #使用=赋值,使用copy()复制 a = [1,2,3,4] b = a a[0] = 11 print(a) print(b) #注意:a与b指向同一个对象 c = [1,2,3,4,5] d = c.copy() e = list(c) f = c[:] c[2] = 33 # 改变c的值不影响d,e,f的值 print(d)#[1, 2, 3, 4, 5] print(e)#[1, 2, 3, 4, 5] print(f)#[1, 2, 3, 4, 5]
二、元组
元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
#创建空元组 empty = () empty #() #元素只有一个时需要跟着一个逗号***,多个元素随意 one_tp = ‘apple‘, print(one_tp) more_tp = ‘apple‘,‘pink‘,‘doubt‘ print(more_tp) #元组赋值给多个变量(元组解包) marx_tp =(‘apple‘,‘pink‘,‘doubt‘) a,b,c = marx_tp print(a) print(b) print(c) #多个变量值进行交换不需借助临时变量 pwd = ‘apple‘ ice = ‘ping‘ pwd,ice = ice,pwd print(pwd) print(ice) #tuple()函数的使用 data = [‘apple‘,‘delete‘,‘pink‘,‘blog‘] tuple(data) print(data)
注意:与元组相比,列表比较灵活(列表方法函数较多),但为什么不在所有地方都使用列表呢?
1、元祖占用空间较少
2、不会意外修改元组值
3、元组可用作字典的键
4、命名元组可以作为对象的替代
5、函数的参数是以元组形式传递的
三、字典
字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。
字典的每个键值对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。
1、创建字典
#创建空字典 empty_dt = {} empty_dt#{} data = {"name":"egon","age":28,"addr":"郑州"} print(data) #使用dict()转换成字典 data_dict = [["a","b"],["c","d"],["e","f"]] dict(data_dict)#{‘a‘: ‘b‘, ‘c‘: ‘d‘, ‘e‘: ‘f‘} data_dict_1 = [("a","b"),("c","d"),("e","f")] dict(data_dict_1)#{‘a‘: ‘b‘, ‘c‘: ‘d‘, ‘e‘: ‘f‘} data_dict_2 = (["a","b"],["c","d"],["e","f"]) dict(data_dict_2)#{‘a‘: ‘b‘, ‘c‘: ‘d‘, ‘e‘: ‘f‘} #双字符 data_dict_db = ["ab","cd","ef"] dict(data_dict_db)#{‘a‘: ‘b‘, ‘c‘: ‘d‘, ‘e‘: ‘f‘} data_dict_db1 = ("ab","cd","ef") dict(data_dict_db1)#{‘a‘: ‘b‘, ‘c‘: ‘d‘, ‘e‘: ‘f‘}
2、添加、修改和获取元素
四、集合
以上是关于列表元组字典与集合的主要内容,如果未能解决你的问题,请参考以下文章
Python面试必考重点之列表,元组和字典第一关——如何定义集合/集合与列表有什么区别/如何去掉列表(元组)中重复的元素