前面我们所接触的数据类型都是存单个值,今天我们来看看可以存多个值的列表和字典。

预习:

1、有列表data=['alex',49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量

2、模拟队列

模拟堆栈

3、有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。

  即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

4、统计s='hello alex alex say hello sb sb'中每个单词的个数

  结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}

本篇导航:

一、列表(list)

用途(存多个值,可以修改):爱好,装备,女朋友们

格式:包含在[]内,用逗号分割开

ps:

hobby=['play','eat','sleep']

基本操作:

 #查看:
girls=['alex','wsb',['egon','ysb']]
print(girls[2]) #['egon', 'ysb']
print(girls[2][0]) #'egon' #增加
girls.append(元素) #删除
girls.remove(元素)
del girls[元素的索引] #修改
girls[0]='alexSB'

常用方法:

l=[1,2,3] #l=list([1,2,3])
print(type(l)) #pat1===》优先掌握部分
# 索引
l=['a','b','c','d','e','d']
print(l.index("d"))
print(l.count("d")) #统计个数
# 切片
l=['a','b','c','d','e','f']
print(l[1:5])
print(l[1:5:2])
print(l[2:5])
print(l[-1]) #了解
# print(l[-1:-4])
# print(l[-4:])
# l=['a','b','c','d','e','f']
# print(l[-2:]) # 追加
hobbies=['play','eat','sleep','study']
hobbies.append('girls')
print(hobbies) # 删除
hobbies=['play','eat','sleep','study']
x=hobbies.pop(1)
#不是单纯的删除,是删除并且把删除的元素返回,我们可以用一个变量名去接收该返回值
print(x)
print(hobbies) #了解
# del hobbies[1] #单纯的删除
# hobbies.remove('eat') #单纯的删除,并且是指定元素去删除 # 长度
hobbies=['play','eat','sleep','study']
print(len(hobbies)) # 包含in
hobbies=['play','eat','sleep','study']
print('sleep' in hobbies)
msg='hello world egon'
print('egon' in msg) ##pat2===》掌握部分
#插入(可以指定位置插入)
hobbies=['play','eat','sleep','study','eat','eat']
hobbies.insert(1,'walk')
hobbies.insert(1,['walk1','walk2','walk3'])
print(hobbies) #可以一次插入多个(仅追加)
hobbies.extend(['walk1','walk2','walk3'])
print(hobbies) #pat3===》了解部分
#clear 清空列表
hobbies=['play','eat','sleep','study','eat','eat']
hobbies.clear()
print(hobbies) #copy 复制
hobbies=['play','eat','sleep','study','eat','eat']
l=hobbies.copy()
print(l) #reverse 倒序排列
l=[1,2,3,4,5]
l.reverse()
print(l) #sort 排序
l=[100,9,-2,11,32]
l.sort() #sort(reverse=True)从大到小
print(l)

二、字典(dict)

用途:存多个值,这一点与列表相同,值可以是任意数据类型,存在里面的数据是无序的

特征:每一个值都一个唯一个对应关系,即key,强调一点,key必须是不可变类型

格式:定义在{},逗号分割,每一个元素的形式都是key:value

ps:

student_info={'age':22,'name':'lln','sex':male,'hobbies':['zsb0','zsb1','zsb2','zsb30']}

基本操作:

 #查看
student_info={'age':18,'name':'lln','sex':male,'hobbies':['zsb0','zsb1','zsb2','zsb30']}
print(student_info['age']) #
print(student_info['hobbies']) #['zsb0', 'zsb1', 'zsb2', 'zsb30']
print(student_info['hobbies'][2]) #'zsb2' #增加
student_info['stu_id']=123456 #删除
del student_info['stu_id'] #修改
student_info['name']='alexSB'

常用方法:

# info=['egon','male',18]
# info_dic={'name':'egon','age':18,'sex':'male'} #存/取
info_dic={'name':'egon','age':18,'sex':'male'}
# print(info_dic['name11111111']) #报错
print(info_dic.get('name',None)) #取不删
info_dic['level']=10 #存
print(info_dic) # 删除
#pop:key存在则弹出值,不存在则返回默认值,如果没有默认值则报错
info_dic={'name':'egon','age':18,'sex':'male'}
print(info_dic.pop('name',None)) #删制定
print(info_dic)
print(info_dic.popitem()) #随机返回并删除字典中的一对键和值(项)。
print(info_dic)
# del info_dic['name'] # 键s,值s,键值对
info_dic={'name':'egon','age':18,'sex':'male'}
print(info_dic.keys())
print(info_dic.values())
print(info_dic.items()) # 循环
# for k in info_dic:
# # print(k,info_dic[k])
# print(k) # print('========>')
# for k in info_dic.keys():
# print(k) # for val in info_dic.values():
# print(val) # for k,v in info_dic.items(): #k,v=('name', 'egon')
# print(k,v) # 长度
info_dic={'name':'egon','age':18,'sex':'male'}
print(len(info_dic)) # 包含in
info_dic={'name':'egon','age':18,'sex':'male'}
print('name' in info_dic)
print('name' in info_dic.keys())
print('egon' in info_dic.values())
print(('name','egon') in info_dic.items()) #掌握
#update 没有则添加有责更新
info_dic={'name':'egon','age':18,'sex':'male'}
info_dic.update({'a':1,'name':'Egon'})
print(info_dic) #字典中列表值添加
info_dic['hobbies']=[]
info_dic['hobbies'].append('study')
info_dic['hobbies'].append('read')
print(info_dic) #setdefault:key不存在则设置默认值,并且放回值默认值
#key存在则不设置默认,并且返回已经有的值
info_dic={'name':'egon','age':18,'sex':'male'}
print(info_dic.setdefault('hobbies',[1,2]))
print(info_dic)
print(info_dic.setdefault('hobbies',[1,2,3,4,5]))
print(info_dic) #ps:
info_dic={'name':'egon','age':18,'sex':'male'}
# {'name':'egon','age':18,'sex':'male','hobbies':['study']}
info_dic.setdefault('hobbies',[]).append('study')
print(info_dic)
# {'name':'egon','age':18,'sex':'male','hobbies':['study','read']}
info_dic.setdefault('hobbies',[]).append('read')
print(info_dic)
# {'name':'egon','age':18,'sex':'male','hobbies':['study','read','sleep']}
info_dic.setdefault('hobbies',[]).append('sleep')
print(info_dic)
#l与info_dic[hobbies]指向的空间相同
l=info_dic.setdefault('hobbies',[])
print(l,id(l))
print(id(info_dic['hobbies']))
print(info_dic) #了解
#copy 复制
info_dic={'name':'egon','age':18,'sex':'male'}
d=info_dic.copy()
print(d) #clear 清空
info_dic.clear()
print(info_dic) # 快速批量创建字典
d1=dict.fromkeys(('name','age','sex'),None)
d2=dict.fromkeys(('name','age','sex'),('egon',18,'male'))
print(d1)
print(d2) #{'name': ('egon', 18, 'male'), 'age': ('egon', 18, 'male'), 'sex': ('egon', 18, 'male')} #其他创建字典方法
info=dict(name='egon',age=18,sex='male')
print(info) info=dict([('name','egon'),('age',18)])
print(info)

预习解答:

#1、有列表data=['lln',22,[1999,9,19]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量
data=['lln',22,[1999,9,19]]
name = data[0]
age = data[1]
year = data[2][0]
month = data[2][1]
day = data[2][2]
print(name,age,year,month,day) #2、队列:先进先出
queue_l=[]
#入队
queue_l.append('first')
queue_l.append('second')
queue_l.append('third')
print(queue_l)
#出队
print(queue_l.pop(0))
print(queue_l.pop(0))
print(queue_l.pop(0)) #堆栈:先进后出,后进先出
l=[]
# #入栈
l.append('first')
l.append('second')
l.append('third')
# #出栈
print(l)
print(l.pop())
print(l.pop())
print(l.pop()) '''
3、有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,
将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
''' x = {"k1":[],"k2":[]}
y = [11,22,33,44,55,66,77,88,99,90]
for i in y :
if i > 66 :
x["k1"].append(i)
if i < 66:
x["k2"].append(i)
print(x) '''
4、统计s='hello alex alex say hello sb sb'中每个单词的个数
  结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
''' s = "hello alex alex say hello sb sb"
s = s.split()
msg = {}
for i in s :
if i in msg :
msg[i] += 1
else :
msg[i] = 1
print(msg)

小知识点:

可变类型与不可变类型

可变数据类型:在id不变的情况下,数据类型内部的元素可以改变  ps:列表,字典

不可变数据类型:value改变,id也跟着改变  ps:数字,字符串,布尔

python基础(6):列表和字典类型的更多相关文章

  1. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2   本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...

  2. python基础之列表、字典、元祖等 (二)

    一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...

  3. Python基础(3) - 数据类型:5字典类型

    Python Dictionary 是 Python 的内置数据类型之一, 它定义了键和值之间一对一的关系 .它是用{}括起来的.每个Dictionary的项的句法为:key:value. Dicti ...

  4. Python基础 之列表、字典、元组、集合

    基础数据类型汇总 一.列表(list) 例如:删除索引为奇数的元素 lis=[11,22,33,44,55] #第一种: for i in range(len(lis)): if i%2==1: de ...

  5. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  6. python基础之列表list元组tuple

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...

  7. python基础一数据类型之字典

    摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...

  8. python字符串、列表和字典的说明

    python字符串.列表和字典的说明 字符串.列表.字典 字符串的作用存储一段数据信息.例如 info = '我爱北京天安门' ,在调取的时候可以直接调取,灵活方便,print(info) 就可以把刚 ...

  9. python基础数据类型--列表(list)

    python基础数据类型--列表(list) 列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增.删.改.查等操作 一列表的增.删.改.查 1增: 1.1增加到最后   append ...

随机推荐

  1. Java对字符串进行的操作

    本篇总结归纳对字符串或数组进行相关操作问题 数组倒序输出 查找字符串中第一次重复的字符 查找字符串中第一次没有重复的字符 删除字符串中重复的元素 倒序输出问题 第一种:对于数组 public int[ ...

  2. PHPstrom的Disable Power Save Mode

    1.安装好phpstorm之后 发现代码高亮和函数自动提示都失效了 网上有人说可能是Power save mode的原因开始没找到这个设置在哪 后来在底部面板的信息提示处发现有一条系统消息: 17:0 ...

  3. phantomjs-prebuilt@2.1.14 install: `node install.js`

    在用vue-cli构建项目时,npm install 安装包的时候报错了. 错误信息: npm ERR! Failed at the phantomjs-prebuilt@2.1.14 install ...

  4. canvas水波纹效果

    先看效果 演示效果 自然界中水波纹效果十分麻烦,我这里只是根据水波纹的几个特性,在理想环境下模拟水波纹的扩散效果. 这里应用到的属性有:扩散.波动.折射. 扩散:很好理解,水波纹会从触发原点开始向周围 ...

  5. 工作流调度引擎---Oozie

    Oozie使用教程 一.   Oozie简介 Apache Oozie是用于Hadoop平台的一种工作流调度引擎. 作用 - 统一调度hadoop系统中常见的mr任务启动hdfs操作.shell调度. ...

  6. Bash中的数学扩展

    Bash只支持整数运算,不支持浮点运算.如果需要进行浮点运算,需要使用bc程序.Bash中的数学扩展有两种形式:$[ expression ]或$(( expression )) 例子:$echo $ ...

  7. Jexus部署.Net Core项目

    Jexus Jexus 即 Jexus Web Server,简称JWS,是Linux平台上 的一款ASP.NET WEB服务器.它是 Linux.Unix.FreeBSD 等非Windows系统架设 ...

  8. Java NIO 学习笔记五 缓冲区补充

    1.缓冲区分配 方法   以 ByteBuffer 为例 (1)使用静态方法 ByteBuffer buffer = ByteBuffer.allocate( 500 ); allocate() 方法 ...

  9. 并发编程(一):从头到脚解读synchronized

    一.目录 1.多线程启动方式 2.synchronized的基本用法 3.深度解析synchronized 4.同步方法与非同步方法是否能同时调用? 5.同步锁是否可重入(可重入锁)? 6.异常是否会 ...

  10. 修改phpstorm的字体样式和大小

    默认的字体实在太小,也太丑,必须修改下.就是强迫症,没错.下面截图配文字说明下 方法/步骤   首先进入设置,不解释   先设置软件界面上的字体.进入设置之后,选择(外观)Appearance.之后软 ...