博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
列表,元组,字典,集合
阅读量:4558 次
发布时间:2019-06-08

本文共 7301 字,大约阅读时间需要 24 分钟。

一、列表类型

# ======================================基本使用======================================
# 1、用途:记录多个值(同种属性)
# 2、定义方式:在[]内用逗号分隔开多个任意类型的值
# l=['a','b','c'] #l=list(['a','b','c'])

# 类型转换

# l=list('hello')
# l=list({'x':1,'y':2})
# print(l)

# 3、常用操作+内置的方法

#优先掌握的操作:
l=['a','b','c','d','e']
#1、按索引存取值(正向存取+反向存取):即可存也可以取
# print(l[0])
# print(l[-1])
# print(id(l))
# l[0]='A'
# print(id(l))

# l[4]='EEEEEE'

# print(l)

# l[5]='dddddd'

# print(l) #报错

#2、切片(顾头不顾尾,步长)
l=['a','b','c','d','e']
# print(l[1:4])
# print(l)

#3、长度
# l=['a','b','c','d','e']
# print(len(l))

#4、成员运算in和not in

# print('a' in l)
# print('ssssss' not in l)

#5、追加&插入

# l=['a','b','c','d','e']
# l.append(3333333)
# l.append(44444)
# print(l)
# append追加一个子列表直接往后面加
# l.insert(0,11111111111)
# print(l)
# insert根据索引插入元素

#6、删除

# l=['a','b','c','d','e']
# del l[0]
# res=l.remove('b')
# print(l)
# print(res)
# remove按照元素单纯的删除某个元素,没有返回值
# res=l.pop(0)
# print(l)
# print(res)
# pop按照元素的索引删除某个元素并且拿到该元素的返回值

#7、循环

# l=['a','b','c','d','e']
# for item in l:
# print(item)

#需要掌握的操作

# l=['a','b','a','c','d','e']
# print(l.count('a')) #计数

# l=['a','b','a','c','d','e']

# items=[1,2,3,4,5]
# # for item in items:
# # l.append(item)
#
# l.extend(items)
# print(l) #追加,一次往列表末尾追加多个值

# l=['a','b','a','c','d','e']
# print(l.index('a',2,5)) #寻找索引

# l=['a','b','a','c','d','e']
# l.reverse()
# print(l) #翻转

# l=[10,-1,3,11,9]

# l.sort() #从小到大排列
# l.sort(reverse=True)
# print(l) #从大到小排列

# ======================================该类型总结====================================
# 存多个值
# 有序
# 可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

# 练习题
#1. 队列:先进先出
l=[]
# # 入队
# l.append('first')
# l.append('second')
# l.append('third')
# print(l)
# # 出队
# print(l.pop(0))
# print(l.pop(0))
# print(l.pop(0))

#2. 堆栈:后进先出

l=[]
# 入栈
l.append('first')
l.append('second')
l.append('third')
print(l)
# 出栈
print(l.pop())
print(l.pop())
print(l.pop()) pop后面不写默认-1

二、元组tuple:

# ======================================基本使用======================================
# 1、用途:元组就是一个不可变的列表
# 2、定义方式:在()内用逗号分隔开多个任意类型的元素
# t=(1,2.2,'aa',('b','c'),['a','b','c']) # t=tuple(...)
# print(type(t))
# 强调:
# l=['a']
# print(type(l),l[0])

# t=('a',)

# print(type(t))
# print(t) #没有后面的逗号就相当于一个字符串

# 类型转换
# t1=tuple('hello') 将字母一个个用逗号隔开,形成元组
# t2=tuple([1,2,3])
# print(t1)
# print(t2)

# 3、常用操作+内置的方法
#优先掌握的操作:
# t=(1,2.2,'aa',('b','c'),['a','b','c'])
#1、按索引取值(正向取+反向取):只能取,不能改
# print(t[0])
# print(t[-1])
# t[0]=1111111111

#2、切片(顾头不顾尾,步长)

# t=('a','b','c','e','f')
# print(t[1:4])

#3、长度

# print(len(t))
#4、成员运算in和not in
# print('a' in t)

#5、循环

# for item in t:
# print(item)

# 需要掌握的操作

# t=('a','b','c','e','a','f')
# print(t.index('a',1,5)) #查找索引
# print(t.count('a')) #计数

# ======================================该类型总结====================================

# 存多个值
# 有序(有索引的都叫有序)
# 不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

三、字典类型dict

# ======================================基本使用======================================
# 1、用途:记录多个值,列表是索引对应值,而字典是key对应值,其中key对value有描述性的功能

# 2、定义方式:在{}用逗号分隔开多个元素,每个元素都是key:value的形式,其中key可以不可变类型,通常是字符串类型

# 而value可以是任意类型
# d={1:'aaa',2.2:'bbb','xxx':'ccc',(1,2,3):'dddd'} #d=dict(...)
# print(d[(1,2,3)])

# 类转换

# d=dict(x=1,y=2,z=3)
# print(d)

# items=[('name','egon'),('age',18),('gender','male')]

# d={}
# for item in items:
# d[item[0]]=item[1]

# d=dict(items)

# print(d)

# 了解

# keys=['name','age','gender','height','weight']
# d={}
# for key in keys:
# d[key]=None

# d={}.fromkeys(keys,None)

# print(d,type(d))

# 3、常用操作+内置的方法

#优先掌握的操作:
#1、按key存取值:可存可取
# dic={'name':'egon','age':18}
# dic['gender']='male'
# print(dic)
# 直接往后面加值

#2、长度len 字典不能出现重复的key,出现了只留后面定义的会把前面的覆盖掉

# dic={'name':'egon','age':18}
# print(len(dic))

#3、成员运算in和not in :是以字典的key为准的

# dic={'name':'egon','age':18}
# print('name' in dic) True
# print('egon' in dic) False

#4、删除
dic={'name':'egon','age':18}
# del dic['name']
# print(dic)

# res=dic.pop('name') 根据key删,返回值是删掉的key对应的value

# print(dic)
# print(res)

# res=dic.popitem() 随机删,返回值是key:value

# print(res)

#5、键keys(),值values(),键值对items()

# 在python2
# >>> dic={'name':'egon','age':18}

# >>> dic.keys()

# ['age', 'name']

# >>> dic.values()

# [18, 'egon']

# >>> dic.items()

# [('age', 18), ('name', 'egon')]

# 在python3

# >>> dic={'name':'egon','age':18}

# >>> dic.keys()

# dict_keys(['name', 'age'])

# >>> dic.values()

# dict_values(['egon', 18])

# >>> dic.items()

# dict_items([('name', 'egon'), ('age', 18)])
#6、循环
# dic={'name':'egon','age':18}
# for k in dic:
# print(k) #name age

# for k in dic.keys():

# print(k) #name age

# for v in dic.values():

# print(v) #egon 18

# for k,v in dic.items(): #k,v=('name', 'egon')

# print(k,v) #name egon
age 18 (解压赋值)

# 需要掌握的操作
# dic.get(key) #根据key取value以后经常要用到的
# dic={'name':'egon','age':18}
# dic={'name':'egon','age':18}
# dic.update({'age':19,'gender':'male'})
# print(dic) #更新

# dic={'name':'egon','age':18}
# 当key存在时,不改原值,返回原值
# res=dic.setdefault('name','EGON')
# print(dic)
# print(res)

# 当key不存在时,增加新值

# res=dic.setdefault('gender','male')
# print(dic)
# print(res)

# ======================================该类型总结====================================

# 存多个值
# 无序
# 可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

四、集合类型set 没法取值
# ======================================基本使用======================================
# 1、用途:I: 关系运算 II:去重
# 2、定义方式:在{}内用逗号分隔开多个元素,但是元素的特点是
# I: 集合内的元素必须是不可变类型
# II: 集合内元素无序
# III: 集合内元素不能重复

# s={1,'aaa',2,} #s=set(...)

# print(s,type(s))

# s=set()

# print(s,type(s))

# s={1,1,1,1,1,1,1,1,1,1,1,1,'a','a','a'}

# print(s)

# 数据类型转换

# res=set('hello')
# print(res)

# res=set([1,'a','b'])

# print(res)

# 3、常用操作+内置的方法

#优先掌握的操作:
#1、长度len
#2、成员运算in和not in

pythons={'张铁蛋','李铜淡','王金蛋','赵银胆','alex','kevin'}

linuxs={'oldboy','张铁蛋','赵银胆','alex','wxx'}
#3、|合集:求所有报名的学生
# print(pythons | linuxs)
# print(pythons.union(linuxs))

#4、&交集:求同时报名两门课程的学生

# print(pythons & linuxs)

#5、-差集: 求只报名python课程的学员

# print(pythons - linuxs)
# print(linuxs - pythons) #求只报名linux课程的学员

#6、^对称差集:求没有同时报名两门课程的学生

# res=(pythons - linuxs) | (linuxs - pythons)
# res=pythons ^ linuxs
# print(res)

#7、==

# s1={1,2,3}
# s2={3,2,1}
# print(s1 == s2)

# 注意:父子集描述的是一种包含与被包含的关系

#8、父集:>=
#9、子集:<=
# s1={1,2,3}
# s2={1,2,3,4}
# print(s2 >= s1)
# print(s1 <= s2)

# 需要掌握的

# s1={1,2,3}
# s1.update({3,4,5,6})
# print(s1) #更新

s1={1,'aa','bb',3}

# print(s1.pop()) #随机删,每次删除一个,有返回值

# res=s1.remove('bb')

# print(s1)
# print(res) #指定要删除的元素,单纯的删没有返回值,当元素不存在报错

# s1.discard('bbb')#根据元素删,当元素不存在时,不会报错

# s1.add(4)
# print(s1) #加值随机加
# ======================================该类型总结====================================
# 存多个值
# 无序
# 可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

# 集合的去重

# 局限性
#1. 只能针对不可变类型
#2. 不能保证原来的顺序
# names=['egon','egon','egon','alex','alex','kevin']
# new_names=list(set(names))
# print(new_names)
集合去重一般用不到,如下方法我们要用这个:
l=[
{'name':'egon','age':18,'sex':'male'},
{'name':'alex','age':73,'sex':'male'},
{'name':'kevin','age':20,'sex':'female'},
{'name':'egon','age':18,'sex':'male'},
{'name':'egon','age':18,'sex':'male'},
]
new_l=[]
for dic in l:
if dic not in new_l:
new_l.append(dic)
print(new_l)

总结:只能存一个值:整型int 浮点型float 字符串str

能存多个值(容器):列表list 元组tuple 字典dict 集合set
可变:列表list 字典dict 集合set
不可变:整型int 浮点型float 字符串str 元组tuple
取值方式:
只能按照变量名:整型int 浮点型float
按照索引取值:字符串str 列表list 元组tuple 他们又叫做序列类型
按照key取值(映射类型):字典dict
集合set 不涉及取值

转载于:https://www.cnblogs.com/lizeqian1994/p/10002517.html

你可能感兴趣的文章
进度条03
查看>>
项目复审
查看>>
FreeMarker学习
查看>>
hihocoder 1631
查看>>
2018大都会赛 A Fruit Ninja【随机数】
查看>>
【实战HTML5与CSS3】用HTML5和CSS3制作页面(上)
查看>>
小公司的一年,一起看看小公司的前端可以怎么做
查看>>
oracle数据批处理
查看>>
Json网络解析
查看>>
[转]Google Chrome/IE/FireFox查看HTTP请求头request header响应头
查看>>
Harris角点检测
查看>>
Struts2的处理流程及为Action的属性注入值
查看>>
设计中最常用的CSS选择器
查看>>
Maven项目打包成可执行Jar文件
查看>>
nginx http proxy 正向代理
查看>>
对BFC的总结
查看>>
第十四周Java学习总结
查看>>
税率等级
查看>>
__alloc_pages
查看>>
web service 使用多态(转载)
查看>>