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

预习:

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. 一天搞定CSS:表单(form)--20

    1.表单标签 2.input标签属性与取值 代码演示 <!DOCTYPE html> <html> <head> <meta charset="UT ...

  2. Java File类应用:递归遍历文件夹和递归删除文件

    要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在 若要删除正文文件夹,可以在递归 ...

  3. 基于查表的整数霍夫变换方法实现(matlab)

    暂时先用matlab把算法弄一下,这是基于查表的整数霍夫变换方法实现及解释. 接着再实现FPGA的霍夫变换. 霍夫变换原理和算法这里不多说,可参考以下链接: http://blog.csdn.net/ ...

  4. nodejs - 守护进程 supervisor

    1. 安装   npm -g install supervisor   2. 如果使用了expres框架   需要修改启动方式 到 package.json中的   "scripts&quo ...

  5. uibutton颜色设置

     UIColor *color = [UIColor colorWithRed:100 / 255.0 green:20 / 255.0 blue:50 / 255.0 alpha:1.0]; 

  6. Spring学习(21)--- AOP之Advice应用(上)

    前置通知(Before advice) 在某个连接点(join point)之前执行的通知,但不能阻止连接点前的执行(除非它抛出异常) 返回后通知(After returning advice) 在某 ...

  7. (转)java web 学习之路(学习顺序)

    第一步:学习HTML和CSS HTML(超文本标记语言)是网页的核心,学好HTML是成为Web开发人员的基本条件.HTML很容易学习的,但也很容易误用,要学精还得费点功夫. 随着HTML5的发展和普及 ...

  8. 表单的get和post使用情景

    GET和POST两种方法都是将数据送到服务器,但你该用哪一种呢? HTTP标准包含这两种方法是为了达到不同的目的.POST用于创建资源,资源的内容会被编入HTTP请示的内容中.例如,处理订货表单.在数 ...

  9. 《Python编程从入门到实践》_第六章_字典

    一个简单的字典 #用户信息 user = {','city':'shanghai'} print(user['name']) print(user['age']) print(user['city'] ...

  10. [BZOJ1597]土地购买

    Description 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000, ...