Python列表、元组、字典 集合简单基础
【Python组合数据类型】
序列类型:字符串(str)列表类型(list)元组(tuple)
映射类型:字典(dict)
集合类型:集合的元素类型只能是固定数据类型,例如整型、字符串、元组等.
列表是一种可变序列数据类型。
列表是将数据元素放在一对中括号之间,并使用逗号作为数据元素的分割。
例如:
[1,2,3,4,5,6,7]
[1, "10086","中国移动",True]
["日期","中国",[2017,5,1]]
[1,[2,3,4],(5,6),{"a":7,"b":8,"c":9}]
【创建列表】: 创建一个列表,可以通过使用方括号,并且把方括号内每一个列表元素用逗号分开进行创建,或者使用list()函数进行创建。
list1=[] //产生一个空列表
list1
或者:
list4=list()
list4
运行结果: []list2=[1,2,3,4,5,6]
list2
运行结果:[1,2,3,4,5,6]list3=['chinese','math','Engish'] //方括号 单引号 逗号隔开
list3
运行结果:['chinese', 'math', 'Engish']list5=list(range(1,10,2)) //将range函数产生的序列变为列表
list5
运行结果:[1, 3, 5, 7, 9]list6=list("东北林业大学") // list函数 圆括号 双引号
list6
运行结果:['东', '北', '林', '业', '大', '学']
【创建列表】列表推导式
[<表达式> for <变量> in <序列>]
list1=[x*x for x in range(1,10)] //求平方
list1
运行结果:[1, 4, 9, 16, 25, 36, 49, 64, 81]list2=[i for i in list1 if i%2==0]
list2
运行结果:[4, 16, 36, 64]
【访问列表】
通过使用索引号,可以访问到列表中的某些列表元素,格式为:<列表名> [<索引>]
访问二维列表的表达格式为:<列表名>[<索引1>][<索引2>]
list1=['a','b','c','d','e','f','g']
list1[0] //访问列表list1中正向索引序号为0的列表元素。
运行结果:'a'list1[2:4] //正向索引 序号从2到4(左闭右开)的列表元素。
运行结果:['c', 'd']list1[-2] //逆向索引 序号为-2的列表元素。
运行结果:'f'list1[4:] //正向索引 序号从4到最后的列表元素。
运行结果:['e', 'f', 'g']list1[:-4] //从开始到逆向索引序号为-4(不包含)的列表元素。
运行结果:['a', 'b', 'c']list1[8] //如果访问的列表序号不存在,则返回索引序号错。
运行结果:: list index out of range //如果访问的列表序号不不在,则返回索引序号错。二维列表:
a=[1,2,3,4,5]
b=[6,7,8,9,10]
c=[11,12,13,14,15]
list=[a,b,c]
list[1][3]
运行结果:9
【更新列表】
【1】修改列表元素值可以用赋值语句,语法格式如下:<列表名> [<索引>]=<值>
【2】添加列表元素
<列表名>.append(<值>)
<列表名>.insert(<索引>,<值>)
【3】删除列表元素
<列表名>.remove (<值>)
del <列表名> [<索引>]或者del <列表名>
【修改】
//修改列表中的苹果、桃子
fruit=['苹果','香蕉','西瓜','桔子','桃子']
fruit[0]='apple'
fruit[-1]='peach'
fruit
运行结果:['apple', '香蕉', '西瓜', '桔子', 'peach']fruit[1:4]=['banana','watermelon','orange'] //修改序号1-4的元素(左开右闭)
fruit
运行结果:['apple', 'banana', 'watermelon', 'orange', 'peach']fruit[0:2]=['苹果','香蕉','梨','樱桃'] //用4个列表元素替换选定的两个列表元素(4个换2个)——增加
fruit
运行结果:['苹果', '香蕉', '梨', '樱桃', 'watermelon', 'orange', 'peach'] fruit[-3:]=['柠檬'] //用一个列表元素替换选定的3个列表元素(1个换3个)——删除
fruit
运行结果:['苹果', '香蕉', '梨', '樱桃', '柠檬']
【添加】
fruit=['苹果','香蕉','西瓜','桔子','桃子']
fruit.append("樱桃") //最后添加樱桃
fruit
运行结果:['苹果', '香蕉', '西瓜', '桔子', '桃子', '樱桃']fruit.insert(2,"柠檬") //中间插入 第2个位置
fruit
运行结果:['苹果', '香蕉', '柠檬', '西瓜', '桔子', '桃子', '樱桃']
【删除】
fruit=['苹果','香蕉','西瓜','桔子','西瓜','桃子']
fruit.remove('西瓜') //删除西瓜
fruit
运行结果:['苹果', '香蕉', '桔子', '西瓜', '桃子'] #remove函数使用一次只能删除一个“西瓜”del fruit[:2] //del语句删除列表中0,1索引序号的列表元素,即删除苹果、香蕉
fruit
运行结果:['桔子', '西瓜', '桃子']del fruit //删除列表
fruit //列表删除后,再使用列表,将出现“未定义”错误。
运行结果:NameError: name 'fruit' is not defined
【元组】
【例】
(1,2,3,4,5)
(“Python”,”C#”,”Java”,”Go”,”VB”)
()
(5,)
((1,2,3),(“a”,”b”,”c”),(True,False))
注意的是,只含有一个元素的元组,元素后面一定要有逗号,否则就是一个表达式而不是元组了。
【创建元组】创建一个元组,可以通过使用小括号,并且把小括号内每一个元组元素用逗号分开进行创建,或者使用tuple()函数进行创建。
tup1=() //创建空元组
tup1
或者
tup4=tuple()
tup4
运行结果:()tup2=(1,2,3,4,5,)
tup2
运行结果:(1, 2, 3, 4, 5)tup3=('Python','c++','Java','VB','Perl') //圆括号 单引号
tup3
运行结果:('Python', 'c++', 'Java', 'VB', 'Perl')tup5=tuple(range(1,10,2)) //将range函数产生的序列变为元组
tup5
运行结果:(1, 3, 5, 7, 9)tup6=tuple("东北林业大学") //tuple函数 圆括号 双引号
tup6
运行结果:('东', '北', '林', '业', '大', '学')
【元组创建】推导式:(<表达式> for <变量> in <序列>)
这种推导式叫做生成器推导,它的结果是一个生成器对象,而不是元组。生成器对象可以使用next()函数依次访问其中的元素,也可以使用list()函数或者tuple()函数转化为列表或者元组后使用。
【例】
g=(x**2 for x in range(1,10)) //利用推导式产生生成器g
g
//<generator object <genexpr> at 0x02D03900> #访问g会提示在某地址有生成器
next(g) //使用next函数访问生成器中第一个元素
1
next(g) //使用next函数继续向下访问生成器中的元素
4
next(g)
9
tuple1=tuple(g) //使用tuple()函数将生成器中没访问的元素生成为元组
tuple1
(16, 25, 36, 49, 64, 81)
【访问元组】元组属于不可变序列
tuple1=('a','b','c','d','e','f','g')
tuple1[1] //正向索引 序号为1的元素。
运行结果:'b'tuple1[3:5] //正向索引 序号从3到4的元素。
运行结果:('d', 'e')tuple1[-1] //逆向索引序号为-1的元组。
运行结果:'g'a=[1,2,3]
b=[4,5,6]
c=(7,8,9)
d=(a,b,c) //元组d由2个列表和1个元组组成。
d
运行结果:([1, 2, 3], [4, 5, 6], (7, 8, 9))
【修改元组】
a=[1,2,3]
b=[4,5,6]
c=(7,8,9)
d=(a,b,c) //元组d由2个列表和1个元组组成。
d[1][0]=10 //改1号元组元素中0号列表元素。
d[1][1]=20 //修改1号元组元素中1号列表元素。
d[1][2]=30 //修改1号元组元素中2号列表元素。
d //修改成功。
运行结果:([1, 2, 3], [10, 20, 30], (7, 8, 9))
【字典】由键值对组成。在一个字典结构中,一个键只能对应一个值,但是多个键可以对应相同的值。
字典将键值对放在一对大括号之间,并使用逗号作为分隔,每个键值对之间用冒号分隔。
【例】
{}
{1:“Python”,2:“C++”,3:“Java”,4:“VB”}
{“No1”:“Python”,“No2”:“C++”,“No3”:“Java”,“No4”:“VB”}
{(“三班”,15):[“张晓红”,“女”],(“四班”,22):[“董强”,“男”],(“五班”,7):[“张晓红”,“女”]
【字典创建】
【赋值语句创建字典】
dict1={}
dict1
运行结果:{}dict2={'优':90,'良':80,'中':70,'及':60}
dict2
运行结果:{'优': 90, '良': 80, '中': 70, '及': 60}
【dict函数创建字典】
dict3=dict([['优',90],['良',80],['中',70],['及',60]]) //列表
dict3
运行结果:{'优': 90, '良': 80, '中': 70, '及': 60}dict4=dict((('优',90),('良',80),('中',70),('及',60))) //元组
dict4
运行结果:{'优': 90, '良': 80, '中': 70, '及': 60}
【fromkeys函数创建字典】
可以将一个序列作为键,然后指定一个统一的值。
formkeys()函数也可以不指定值,创建的字典默认为None空值
dict6={}.fromkeys(['优','良','中','及'],"大于60分!")
dict6
运行结果:{'优': '大于60分!', '良': '大于60分!', '中': '大于60分!', '及': '大于60分!'}dict6={}.fromkeys(['优','良','中','及'])
dict6
运行结果:{'优': None, '良': None, '中': None, '及': None}
【推导式创建字典】
{<键>:<值> for <变量> in <序列>}
dict8={n:n**2 for n in range(1,5)}
dict8
运行结果:{1: 1, 2: 4, 3: 9, 4: 16}
【访问字典】
dict4=dict((('优',90),('良',80),('中',70),('及',60)))
dict4['良'] //访问键为"良"的映射值
运行结果:80
字典对象也提供了一个get()方法来通过键访问对应的值:当键存在时,返回该键对应的值,而键不存在的时候也不会出错,而返回指定值。
【例】
dict4=dict((('优',90),('良',80),('中',70),('及',60)))
dict4.get('良','键不存在')
运行结果:80dict4=dict((('优',90),('良',80),('中',70),('及',60)))
dict4.get('良好','键不存在')
运行结果:'键不存在'
访问字典的所有键值对、所有键、所有值
items()—返回所有键值对
keys()—返回所有键
values()—返回所有值
【例】
dict2={'优':90,'良':80,'中':70,'及':60}
dict2.items()
运行结果:dict_items([('优', 90), ('良', 80), ('中', 70), ('及', 60)])dict2={'优':90,'良':80,'中':70,'及':60}
dict2.keys()
运行结果:dict_keys(['优', '良', '中', '及'])dict2={'优':90,'良':80,'中':70,'及':60}
dict2.values()
运行结果:dict_values([90, 80, 70, 60])
【遍历字典】
dict={'优':90,'良':80,'中':70,'及':60}
for i in dict:print(i,end=",") //默认访问字典的键同for i in dict.keys():
运行结果:优,良,中,及, dict={'优':90,'良':80,'中':70,'及':60}
for i in dict.items():print(i,end=",")
运行结果:('优', 90),('良', 80),('中', 70),('及', 60), //访问字典键值对元素dict={'优':90,'良':80,'中':70,'及':60}
for i in dict.values():print(i,end=",") //访问字典的值
运行结果:90,80,70,60,
【更新字典】增、删、改
【添加元素】
dict={'1':'chinese','2':'math','3':'English','4':'music'}
dict['5']='ABCD'
dict
运行结果:{'1': 'chinese', '2': 'math', '3': 'English', '4': 'music', '5': 'ABCD'}
【使用setdefault()函数添加】
dict={'1':'chinese','2':'math','3':'English','4':'music'}
dict.setdefault('5','ABCD')
'ABCD' //添加ABCD
dict
运行结果:{'1': 'chinese', '2': 'math', '3': 'English', '4': 'music', '5': 'ABCD'}dict={'1':'chinese','2':'math','3':'English','4':'music'}
dict.setdefault('5') //空值
dict
运行结果:{'1': 'chinese', '2': 'math', '3': 'English', '4': 'music', '5': None}
【合并字典】
dict1={'1':'A','2':'B'}
dict2={'3':'C','4':'D'}
dict1.update(dict2)
dict1
运行结果:{'1': 'A', '2': 'B', '3': 'C', '4': 'D'}dict1={'1':'A','2':'B'}
dict3={'1':'Q'}
dict1.update(dict3)
dict1
运行结果:{'1': 'Q', '2': 'B'}
【修改字典】
dict={'1':'chinese','2':'math','3':'English','4':'music'}
dict['2']='ABCD'
dict
运行结果:{'1': 'chinese', '2': 'ABCD', '3': 'English', '4': 'music'}
【删除字典】
可以用del()函数、del语句、pop()函数、popitem()函数、clear()函数
dict={'1':'chinese','2':'math','3':'English','4':'music'}
del(dict['4']) //del函数删除指定元素
dict
运行结果:{'1': 'chinese', '2': 'math', '3': 'English'}dict={'1':'chinese','2':'math','3':'English','4':'music'}
del dict['3'] //del语句删除指定元素
dict
运行结果:{'1': 'chinese', '2': 'math', '4': 'music'}dict={'1':'chinese','2':'math','3':'English','4':'music'}
dict.popitem() //随机删除一个元素
dict
运行结果:{'1': 'chinese', '2': 'math', '3': 'English'}dict={'1':'chinese','2':'math','3':'English','4':'music'}
dict.clear() //使用clear()函数可以清空字典,但字典依然存在
dict
运行结果:{}
【集合】
集合是无序的可变序列,集合元素放在一对大括号间(和字典一样),元素之间用逗号分隔。
【例】
{1,2,3,4,5,6,7}
{“a”,“b”,“c”,“d”,“e”}
{(1, 2), (1, 3), (2, 1), (2, 3), (2, 2), (1, 1)}
【创建集合】
可变集合—set()函数
不可变函数—frozenset()函数
【赋值语句创建】
set1={1,2,3,4,5,1} //重复元素自动去掉
set1
运行结果:{1, 2, 3, 4, 5}
【set()函数创建】
set4=set([1,2,3,4,3,2,1]) //#将列表对象创建为集合set4
运行结果:{1, 2, 3, 4}set5=set((1,2,3,4,3,2,1)) //#将元组对象创建为集合
set5
运行结果:{1, 2, 3, 4}
【frozenset()函数创建】
set6=frozenset([1,2,3,4,5,1])
set6
运行结果:frozenset({1, 2, 3, 4, 5})
【访问集合】
set1={1,2,3,4,5,6,7,1}
for i in set1:print(i,end=',')
运行结果:1,2,3,4,5,6,7,
【更新集合】
集合的更新只有添加元素和删除元素两种操作。而且只有可变集合是可以更新的,不可变集合创建后不能更新。
【添加元素】
通过add()函数可以向集合中添加1个元素;
通过update()函数可以向集合中添加多个元素。在向集合中添加元素时,如果新元素与集合中原有的元素重复,将不会被添加。
【例】
【add()函数添加】
set1={1,2,3,4,5}
set1.add(6) //add()只能添加一个元素
set1
运行结果:{1, 2, 3, 4, 5, 6}set1={1,2,3,4,5}
set1.add(4) //如果添加的元素重复,则新元素不会被添加
set1
运行结果:{1, 2, 3, 4, 5}
【update()函数添加】
set1={1,2,3,4,5}
set1.update({7,8,9}) //update()函数的实质是将一个新集合合并到原有集合中。
set1
运行结果:{1, 2, 3, 4, 5, 7, 8, 9}
【删除元素】
删除一个集合中的元素可以使用remove()函数,pop()函数,discard()函数或者clear()函数。
//当删除的元素不在集合中,remove函数报错
//当删除的元素不在集合中,discard函数不报错
【例】
【remove函数】
set1={1,2,3,4,5,6,7}
set1.remove(4) //删除集合元素4
set1
运行结果:{1, 2, 3, 5, 6, 7}
【discard函数】
set1={1,2,3,4,5,6,7}
set1.discard(2) //discard函数和remove函数使用方法类似
set1
运行结果:{1, 3, 5, 6, 7}
【pop函数】
set1={1,2,3,4,5,6,7}
set1.pop() //随机删除一个集合元素
3 //写不写都可
set1
运行结果:{2, 3, 4, 5, 6, 7}
【clear函数】
set1={1,2,3,4,5,6,7}
set1.clear() ///清除集合中所有元素
set1
运行结果:set()
Python列表、元组、字典 集合简单基础相关推荐
- python列表元组字典集合实验心得_python学习小总结(列表、元组、字典、集合、字符串)...
---恢复内容开始--- 一.列表(list) 1.添加 append():追加,在列表末尾添加元素. 列表名.append(添加的元素) extend():扩展,在列表末尾添加元素. 列表名.ext ...
- Python列表/元组/字典/集合详解
本文是对Python中的列表.元组.字典.集合知识的梳理总结,将Python的重要知识点梳理成条,通过一个简单的员工管理系统(EMS)实战,可以深入的了解Python的基本知识.本文基本上涵盖了在日常 ...
- Python 列表元组字典集合
列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片.合并.删除等操作 可通过索引来向指定位置插入元素 可通过po ...
- python中列表 元组 字典 集合的区别
参考文章:python中列表 元组 字典 集合的区别
- Python列表,元组,字典的区别
Python列表,元组,字典的区别: 1.元组是不可变的, 而列表.字典是可变的.元组是不可变对象,对象一旦生成,它的值将不能更改:列表是可变对象,对象生成后,可以对其元素进行更改.添加.删除.清空. ...
- python_列表——元组——字典——集合
列表--元组--字典--集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...
- python列表添加元素的三种方法定义集合数据对象_(1) List,tuple,dictionary,Python语法基础集,一,之,列表,元组,字典,集合...
Python序列(列表.元组.字典.集合) 一.列表(List)与列表推导式 (一)列表(list) 1.列表是Python内置 可变序列 (列表中元素可增加删除或修改): 2.列表元素放在一对中括号 ...
- python入门——列表+元组+字典+集合
列表 列表是最常用的python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 1.列表嵌套(相当于二维数组) a=["b",'c','d'] ...
- 4.Python基础语法(数字运算/字符串/列表/元组/字典/集合)
4.1 数字运算 编程是将问题数据化的一个过程,数据离不开数字,Python的数字运算规则与我们学习的四则运算规则是一样的,即使不使用Python来编写复杂的程序,也可以将其当作一个强大的计算器.打开 ...
最新文章
- JDBC中的Statement 和PreparedStatement的区别?
- 中国人民大学_《组织行为学》_15如何降低集体决策的风险?
- JVM调优总结(九)-新一代的垃圾回收算法
- set, unordered_set模板类
- 12、SpringBoot------activeMq的简单使用
- cs231n学习笔记-激活函数-BN-参数优化
- Third《高质量程序设计指南—C++/C语言》(第二版)
- 暨南大学锐捷校园网路由器教程
- tp5设置session过期时间
- React-native设置全局函数globle【适用于有组件嵌套时】
- 解压缩软件:WinRAR V5.71
- 如何启动联想计算机的休眠模式,如何设置休眠、待机、睡眠
- 百度和谷歌到底有什么区别?看完终于明白了!
- CentOS等保三级安全加固方案
- Python实现股票查询
- 【缓存】@CacheEvict
- 认识 BASH Shell
- 这世界就是,一些人总在昼夜不停地运转,而另外一些人,起床就发现世界已经变了。...
- QComboBox下拉框条目高度的调整
- 计算机班内排名公式,巧用Excel数组公式统计各班优秀人数EXCEL基本教程 -电脑资料...
热门文章
- 【Todo】【读书笔记】机器学习实战(Python版)
- Coursera | Introduction to Data Science in Python(University of Michigan)| Assignment3
- 信息学竞赛有什么好的比赛网站?
- css样式写一个公告通知
- 抖音Android无障碍开发知识总结
- c语言求粮食分配问题该怎么编程,关于C语言编程题,额不会,求赐教!!
- 一次网络世界的旅行-简单理解网络通信
- 工程师排查故障三要诀
- Kaggle实战:泰坦尼克幸存者预测 -下
- Elasticsearch大数据量写入调优和原理解析