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

预习:

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. Asp.Net Core写个共享磁盘文件Web查看器

    本篇和大家分享的是一个磁盘文件查看系统,严格来说是使用NetCore写的一个Web系统应用,由于NetCore跨平台特性,我生成了exe的运行包,只需要配置运行电脑ip+端口,即可在浏览器中通过IP+ ...

  2. 面向对象(java菜鸟的课堂笔记)

    类:相同的东西放在一起 分为属性和动作: 把一组或多组事物相同的特性的描述==>类   属性和动作被称为成员: //声明类的属性信息 public class **{ String name: ...

  3. javascript痛点之二作用域链

    1.执行环境(执行上下文) 先看段代码 var a = 10; var b = 20; function cc(){ var c = 30; alert("b="+b); } cc ...

  4. 透过源码看看Redis中如何计算QPS

    通常我们采集Redis的性能数据时,或者想要知道Redis当前的性能如何时,需要知道这个实例的QPS数据,那么这个QPS数据是如何计算的呢?我们都有哪些办法或者这个QPS ? QPS顾名思义就是每秒执 ...

  5. JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现

    一.自定义拦截器 1.架构 2.拦截器创建 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implemen ...

  6. win7双系统安装openSUSE13.2解决【引导加载器安装期间出错】问题

    原始日期:2015-08-17 14:16 昨晚不知道哪根筋不对,突然想装一个liunx系统,与win7形成双系统,最终选定openSUSE13.2,想想以前也安装过Ubuntu,应该差不多,所以直接 ...

  7. JAVA项目省市县加载兼容浏览器异常

    最近同僚遇到个在IE8及IE8以下浏览器上出现地址加载问题,初始加载没问题,问题出在事件上. 先来一段初始加载地址的代码:(也可以修改或者增加第二个事件地址) var select1 = new Li ...

  8. EJB系列 - 消息与MDB

    什么是消息 松散耦合的异步通信过程 1. 面向消息的中间件(MOM): 消息发送者称为生产者; 存储消息的位置称为目的地; 接受消息的组件称为消费者 2. 消息模型:  a. 点对点:目的地成为队列, ...

  9. Api接口通用安全策略及实现-OSS.Core

    这篇文章一直说写,迟迟没有动手,这两天看到一些应用接口数据被别人爬虫.短信接口被人高频率请求攻击等案列,感觉简单概述分享一下接口安全验证还是有必要的.毕竟当下基本都以客户端应用为主,如果前期疏忽,发布 ...

  10. CSS学习笔记08 浮动

    从CSS学习笔记05 display属性一文中,我们知道div是块元素,会独占一行,即使div的宽度很小,像下面这样 应用display属性的inline属性可以让div与div共享一行,除了这种方法 ...