python基础(6):列表和字典类型
前面我们所接触的数据类型都是存单个值,今天我们来看看可以存多个值的列表和字典。
预习:
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):列表和字典类型的更多相关文章
- Day2 - Python基础2 列表、字典、集合
Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...
- python基础之列表、字典、元祖等 (二)
一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...
- Python基础(3) - 数据类型:5字典类型
Python Dictionary 是 Python 的内置数据类型之一, 它定义了键和值之间一对一的关系 .它是用{}括起来的.每个Dictionary的项的句法为:key:value. Dicti ...
- Python基础 之列表、字典、元组、集合
基础数据类型汇总 一.列表(list) 例如:删除索引为奇数的元素 lis=[11,22,33,44,55] #第一种: for i in range(len(lis)): if i%2==1: de ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python基础之列表list元组tuple
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...
- python基础一数据类型之字典
摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...
- python字符串、列表和字典的说明
python字符串.列表和字典的说明 字符串.列表.字典 字符串的作用存储一段数据信息.例如 info = '我爱北京天安门' ,在调取的时候可以直接调取,灵活方便,print(info) 就可以把刚 ...
- python基础数据类型--列表(list)
python基础数据类型--列表(list) 列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增.删.改.查等操作 一列表的增.删.改.查 1增: 1.1增加到最后 append ...
随机推荐
- php curl_setopt的相关设置查询手册
bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项.option参数是你想要的设置, ...
- 这是假的JS——利用CSS Animation实现banner图非交互循环播放
话不多说,先来张html和css代码截图~ 注意事项: 1.如果想在每张图前进行停顿,可以在keyframes中的每一步前加上一小段与下一张相同的代码: 2.如果想要在实现无违和感的最后一张与第一张的 ...
- 做一枚精致的程序猿,Fighting!
这几天我和我们的团队正在做一个公司管理系统的项目,团队分工根据成员的水平高低来分工,这样看似公平,但其实不公平,如此这样一来,那些水平稍不如别人的成员就没有发展的机会?那么问题来了,对于水平稍逊色的程 ...
- 一道C语言安全编码题目
1.前言 最近在网上看到一道C语言题目,用C语言实现一个函数,给定一个int类型的整数,函数输出逆序的整数,例如输入123,则输出字符串"321",,输入-123,则输出字符串&q ...
- Babel 入门指南
Babel 入门指南 ⚠️ 注意: Babel 可以与很多构建工具(如 Browserify.Grunt.Gulp 等)进行集成.由于本教程选择 Webpack ,所以只讲解与 Webpack 的集 ...
- Ubuntu17.04配置LNMP(Nginx+PHP7+MySQL)简单教程 快速 易学 简单易懂
我安装的是当前最新的Ubuntu版本17.04,在虚拟机中先试用一下,如果没有什么不稳定的现象,准备以后作为主力操作系统 Ubuntu属于Debian系的Linux系统,拥有着一个很NB的软件包管理器 ...
- python 标准库 -- requests
一. 安装 $ pip install requests requests 并不是python 标准库, 但为了汇总方便, 将其放置于此. 二. 用法 requests.get() : GET 请求 ...
- 深入浅出 spring-data-elasticsearch - 基本案例详解(三
『 风云说:能分享自己职位的知识的领导是个好领导. 』运行环境:JDK 7 或 8,Maven 3.0+技术栈:SpringBoot 1.5+, Spring Data Elasticsearch ...
- vue组件(Vue+webpack项目实战系列之三)
组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.特别对于大型应用开发来说,尽量组件化,并且先造好轮子库,不要重复去写组件,这会显著提升项目 ...
- 如何退出 Vim
点击 Esc 键,; Vim 进入命令模式.然后输入: :q 退出(这是 :quit 的缩写) :q! 不保存退出(这是 :quit! 的缩写) :wq 写入文件并退出:(这是 :writequi ...