【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列表、元组、字典 集合简单基础相关推荐

  1. python列表元组字典集合实验心得_python学习小总结(列表、元组、字典、集合、字符串)...

    ---恢复内容开始--- 一.列表(list) 1.添加 append():追加,在列表末尾添加元素. 列表名.append(添加的元素) extend():扩展,在列表末尾添加元素. 列表名.ext ...

  2. Python列表/元组/字典/集合详解

    本文是对Python中的列表.元组.字典.集合知识的梳理总结,将Python的重要知识点梳理成条,通过一个简单的员工管理系统(EMS)实战,可以深入的了解Python的基本知识.本文基本上涵盖了在日常 ...

  3. Python 列表元组字典集合

    列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片.合并.删除等操作 可通过索引来向指定位置插入元素 可通过po ...

  4. python中列表 元组 字典 集合的区别

    参考文章:python中列表 元组 字典 集合的区别

  5. Python列表,元组,字典的区别

    Python列表,元组,字典的区别: 1.元组是不可变的, 而列表.字典是可变的.元组是不可变对象,对象一旦生成,它的值将不能更改:列表是可变对象,对象生成后,可以对其元素进行更改.添加.删除.清空. ...

  6. python_列表——元组——字典——集合

    列表--元组--字典--集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...

  7. python列表添加元素的三种方法定义集合数据对象_(1) List,tuple,dictionary,Python语法基础集,一,之,列表,元组,字典,集合...

    Python序列(列表.元组.字典.集合) 一.列表(List)与列表推导式 (一)列表(list) 1.列表是Python内置 可变序列 (列表中元素可增加删除或修改): 2.列表元素放在一对中括号 ...

  8. python入门——列表+元组+字典+集合

    列表 列表是最常用的python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 1.列表嵌套(相当于二维数组) a=["b",'c','d'] ...

  9. 4.Python基础语法(数字运算/字符串/列表/元组/字典/集合)

    4.1 数字运算 编程是将问题数据化的一个过程,数据离不开数字,Python的数字运算规则与我们学习的四则运算规则是一样的,即使不使用Python来编写复杂的程序,也可以将其当作一个强大的计算器.打开 ...

最新文章

  1. JDBC中的Statement 和PreparedStatement的区别?
  2. 中国人民大学_《组织行为学》_15如何降低集体决策的风险?
  3. JVM调优总结(九)-新一代的垃圾回收算法
  4. set, unordered_set模板类
  5. 12、SpringBoot------activeMq的简单使用
  6. cs231n学习笔记-激活函数-BN-参数优化
  7. Third《高质量程序设计指南—C++/C语言》(第二版)
  8. 暨南大学锐捷校园网路由器教程
  9. tp5设置session过期时间
  10. React-native设置全局函数globle【适用于有组件嵌套时】
  11. 解压缩软件:WinRAR V5.71
  12. 如何启动联想计算机的休眠模式,如何设置休眠、待机、睡眠
  13. 百度和谷歌到底有什么区别?看完终于明白了!
  14. CentOS等保三级安全加固方案
  15. Python实现股票查询
  16. 【缓存】@CacheEvict
  17. 认识 BASH Shell
  18. 这世界就是,一些人总在昼夜不停地运转,而另外一些人,起床就发现世界已经变了。...
  19. QComboBox下拉框条目高度的调整
  20. 计算机班内排名公式,巧用Excel数组公式统计各班优秀人数EXCEL基本教程 -电脑资料...

热门文章

  1. 【Todo】【读书笔记】机器学习实战(Python版)
  2. Coursera | Introduction to Data Science in Python(University of Michigan)| Assignment3
  3. 信息学竞赛有什么好的比赛网站?
  4. css样式写一个公告通知
  5. 抖音Android无障碍开发知识总结
  6. c语言求粮食分配问题该怎么编程,关于C语言编程题,额不会,求赐教!!
  7. 一次网络世界的旅行-简单理解网络通信
  8. 工程师排查故障三要诀
  9. Kaggle实战:泰坦尼克幸存者预测 -下
  10. Elasticsearch大数据量写入调优和原理解析