http://www.cnblogs.com/linhaifeng/articles/7133357.html#_label4

1。列表类型

用途:记录多个值(一般存放同属性的值)

定义方法

在[]内用逗号分隔多个任意类型的值

l=list{'hello'}

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

print(l)

常用操作+内置的方法

优先掌握的操作:

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

按索引存取值(正向存取+反向存取):即可存也可以取

print(l(0))

print(l[-1])取最后一个元素

print(id(l))

l[0]='A'

print(id(l))

l[4]='EEEEE' 会修改值

l[5]='ddddd'索引不存在的值回报错

切片(顾头不顾尾,步长)
l=['a','b','c','d','e']

print(l[1:4])从索引开始输出,到索引4截止

print(l)

求长度 len

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

print(len(l))

成员运算符 in和not in

print('a' in l)

print('a' not in l)

追加和插入

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

l.append(4444),在列表末尾加上添加的内容g

print(l)

l.insert(0,1111111)在索引0的位置添加上要添加的内容

print(l)

删除

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

del l[0] 删除索引值对应的元素,假如索引值超过列表长度也会报错

res=l.remove('b') 假如要删除的内容不在l中,会报错

print(l)

print(res)成功remove的话会返回None

res=l.pop(0)删除索引对应的值

print(l)

print(res)#pop会把删除的值取回

循环

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) 把另一个列表内添加进一个列表中

也可以用extend把另一个列表添加进列表中

l.extend(items) 本身返回值None

print(l)

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

print(l.index('a',2,5))从索引2开始到索引5找值‘a',找到就返回’a'的索引

l.index(234234234) 索引没找到值会报错

if 234234234 in l:

  print(l.index(234234234))

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

l.reverse()

print(l)反转列表l的内容

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

l.sort()

print()从小打到排列l

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

print(l.extend(['a','b','c']))返回值None

print(l.pop())返回删除的值

总结:

存多个值

可变类型(1.可变:值变,id不变。可变==不可hash 2.不可变:值变,id就变。不可变=可hash)

有序

练习题;

队列:先进先出

l=[]

入队

l.append('first')

l.append('secord')

l.append('third')

出队

l.pop(0)

l.pop(0)

l.pop(0)

堆栈:后进先出

l.append('first')

l.append('second')

l.append('third')

l.pop()

l.pop()

l.pop()

2.元组类型

用途:元组就是一个不可变的列表

定义方法:在()内用逗号分隔开多个任意数据类型的元素

t=(1,2.2,'aa',('b','c'),['a','b','c'])

print(type(t))

l=['a']这是定义了一个列表,只有一个元素,就是‘a'

print(type(l),l[0])

t=('a',),只有一个字符串的时候要用圆括号带逗号的形式定义,否则会定义成字符串类型

print(type(t))

print(t)

msg=('hello world')

类型转换

t1=tuple('hello world')

t2=tuple([1,2,3])能在for循环中循环的元素都可以放在tuple中,会循环取出后面的元素,组成一个元组

print(t1)

print(t2)

常用操作和内置的方法

优先掌握的操作:

t=(1,2.2,'aa',('b','c'),['a','b','c'])

1.按索引取值(正向取+反向取:只能取

print(t[0])

print(t[-1])

t[0]=111111 # 无法运行,报错,因为元组是不可变了类型

切片(顾头不顾尾,步长)

t=('a','b','c','e','f')

print(t[1:4])从索引1开始取值,到索引4截止

求长度

print(len(t))

成员运算符in和not in

print('a' in t)

循环

for item in t:

  print(item)

需要掌握的操作

t=('a','b','c','e','a','f')

print(t.index('a',1,5))从索引1位置开始找’a'对应的索引,到5截止。没找到该值的话会报错

print(t.count('a'))计算‘a'出现几次

总结:

可以存多个值

有序

不可变类型(值变,id也改变)元组中索引于值的对应关系不能改变,如果元素中有列表,但是列表内 的元素可以修改,因为元组中索引与列表内存地址的对应关系没有改变

t=('a','b','c')

print(id(t))

t=('A','B','C')

print(id(t))

t=('a',111,['b','c'])

print(id(t[0],id(t[1]),id(t[2]))

t[2][0]='B'

print(t)

print(id(t[0]),id(t[1]),id(t[2]))

t[0]='A' #不能执行,会报错,因为会修改索引和内存地址的对应关系

t[2]=[1,2,3] #同理不能运行

l=['a','b','c']

l[0]='A' 列表类型就可以随意更改了

3.字典类型 dict

用途:记录多个值,列表用索引取值,而字典用key对应值,其中key对value有描述性的作用

4.定义方法:在{}用逗号分隔开多个元素,每个元素都是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) 前面的变量名是key,后面的值是value

print(d)

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

d={}

for item in items: #items是一个列表,这个循环会按,号分隔取出列表中的元素,赋值给item,取出的item是元组,索引可以继续按索引操作

  d[item[0]]=item[1] #元组的第一个元素做key,第二个元素做value

d=dict(items)(相当于上面的循环,把列表中的key和value取出来,对列表中值的格式有要求)

print(d)

了解

keys=['names','age','gender','height','weight']

d={}

for key in keys:

  d[key]=None 用循环先建立一个value为空的字典

d={}.fromkeys(key,None) 从key列表中去key,value先设为None

常用操作+内置方法

优先掌握的方法:

1.按key存取值:可存可取

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

dic['name'] 取不到值时报错

print(dic.get'name')取不到值时返回None

print(dic['name'])

dic['name']='EGON'

dic['gender']='male'#对于字典中没有的key和值,会直接添加进字典

l=['a','b','c']

l[0]='A'

l[4]='AAA' 列表类型这样操作就会报错,找不到索引值

求长度

len

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

print(dic)

print(len(dic)) 返回key的个数,也是value个数

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

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

print('name' in dic) 判断是否是key

print('egon' in dic)

删除

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

del dic['name'] #key如果不存在就报错,如果存在就把key和对饮的value一起删除

print(dic)

res=dic.pop('name') 同样是删除key和对应的value,但是会返回删除的value

res=dic.popitem() 随机删除字典的一个key和value,把删除的key和value转成一个元组

print(res)

键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)]) 循环
dic={'name':'egon','age':18}
for k in dic:
  print(k) #输出key
for k in dic.keys():
  print(k)#输出key for v in dic.values():
  print(v) #输出value
for k,v in dic.items():
  print(k,v) 需要掌握的操作
dic={'name':'egon','age':18}
当key存在时,不改原值,返回原值
res=dic.setdefault('gender','male')
print(dic)
print(res)
当key不存在时,增加新值
res=dic.setdefault('gender','male')
print(dic)
print(res) 总结:
可变类型
存多个值
无序 4.集合类型set
pythons=['张铁蛋','李铜淡','王金蛋','赵银胆','alex','kevin']
# linuxs=['oldboy','张铁蛋','赵银胆','alex','wxx']
#
# res=[]
# for stu in pythons:
# if stu in linuxs:
# res.append(stu)
#
# print(res) 用途:1.关系运算 2.去重 定义方法:在{}内用逗号分隔开多个元素,但是元素的特点是
1.集合内元素必须是不可变类型
2.集合内元素无序
3.集合内元素不能重复
s={1,'aaa',2}#s=set(...)
print(s,type(s))
s={1,1,1,1,1,1,1,'a','a','a'}
print(s)#会去重 数据类型转换
res=set('hello')
print(res) #会把字符串中每个字符单独取出来,存成一个集合 res=set([1,'a','b'])
print(res)#会把列表中元素一次取出存成集合 常用操作+内置方法
优先掌握的操作 长度len
成员运算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)
== 判断是否内容相同
s1={1,2,3}
s2={3,2,1}
print(s1==s2) 父子集描述的是一种包含和被包含的关系
父集:>=
子集: <=
# 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中没有的元素加进去 s1={1,'aa','bb',3}
print(s1.pop()) 随意扔一个值,返回被扔的值 res=s1.remove('bbbb')如果集合中没有这个值,会报错
print(s1)
print(res)如果删除成功的话返回None s1.discard('bbb')没有这个值可以删除的话,返回None,不会报错
s1.add(4) 如果集合里没有该值,就添加进去,返回None
print(s1) 总结
存多个值
无序
可变 集合的去重
局限性
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'},
]
new_l=[]
for dic in l:
  if dic not in new_l:
    new_l.append(dic) print(new_l)

python学习day7 数据类型及内置方法补充的更多相关文章

  1. python入门之数据类型及内置方法

    目录 一.题记 二.整形int 2.1 用途 2.2 定义方式 2.3 常用方法 2.3.1 进制之间的转换 2.3.2 数据类型转换 3 类型总结 三.浮点型float 3.1 用途 3.2 定义方 ...

  2. Python学习之路8 - 内置方法

    abs(-230) #取绝对值 all([0,1,-5]) #如果参数里面的所有值都为真就返回真,否则返回假 any([0,1,-5]) #如果参数里面有一个值为真则返回真,否则返回假 ascii([ ...

  3. python 入门基础4 --数据类型及内置方法

    今日目录: 零.解压赋值+for循环 一. 可变/不可变和有序/无序 二.基本数据类型及内置方法 1.整型 int 2.浮点型float 3.字符串类型 4.列表类型 三.后期补充内容 零.解压赋值+ ...

  4. day6 基本数据类型及内置方法

    day6 基本数据类型及内置方法 一.10进制转其他进制 1. 十进制转二进制 print(bin(11)) #0b1011 2. 十进制转八进制 print(hex(11)) #0o13 3. 十进 ...

  5. while + else 使用,while死循环与while的嵌套,for循环基本使用,range关键字,for的循环补充(break、continue、else) ,for循环的嵌套,基本数据类型及内置方法

    今日内容 内容概要 while + else 使用 while死循环与while的嵌套 for循环基本使用 range关键字 for的循环补充(break.continue.else) for循环的嵌 ...

  6. Day 07 数据类型的内置方法[列表,元组,字典,集合]

    数据类型的内置方法 一:列表类型[list] 1.用途:多个爱好,多个名字,多个装备等等 2.定义:[]内以逗号分隔多个元素,可以是任意类型的值 3.存在一个值/多个值:多个值 4.有序or无序:有序 ...

  7. if循环&数据类型的内置方法(上)

    目录 if循环&数据类型的内置方法 for循环 range关键字 for+break for+continue for+else for循环的嵌套使用 数据类型的内置方法 if循环&数 ...

  8. wlile、 for循环和基本数据类型及内置方法

    while + else 1.while与else连用 当while没有被关键字break主动结束的情况下 正常结束循环体代码之后执行else的子代码 """ while ...

  9. while和for循环的补充与数据类型的内置方法(int, float, str)

    目录 while与for循环的补充 while + else 死循环 while的嵌套 for补充 range函数 break与continue与else for循环的嵌套 数据类型的内置方法 int ...

随机推荐

  1. tkinter面板切换

  2. zip和zipPartitions

    zip函数用于将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同,否则会抛出异常. scala> val aa=sc.makeRDD( ...

  3. oracle删除表数据的两种的方式

    转自:https://blog.csdn.net/qq_37840993/article/details/82490787 平时写sql中我们都会用到删除语句,而平时删除表数据的时候我们经常会用到两种 ...

  4. 认识JavaWeb,servlet, JSP, Tomcat, http协议,Web服务器

    JavaWeb通常指服务器端的Java应用开发. 一般来说,服务器是在网络通信条件下工作的,这就离不开http协议. HTTP协议,是为服务器和客户端通信提供的规范,其中规定了信息的格式,符合规范格式 ...

  5. SQL优化 - 避免使用 IN 和 NOT IN

    WHY? IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢? 1.效率低 项目中遇到这么个情况: t1表 和 t2表  都是150w条数据,600M的样子,都不算大. 但是这样一句查询  ...

  6. 十张GIFs让你弄懂递归等概念

    图像(包括动图)是传递信息的一种高效方式,往往能增强表象.记忆与思维等方面的反应强度.所谓一图胜千言,说的就是这个道理. 今天为大家整理了十张动图GIFS,有助于认识循环.递归.二分检索等概念的具体运 ...

  7. RabbitMQ系列教程之五:主题(Topic)(转载)

    RabbitMQ系列教程之五:主题(Topic) (本实例都是使用的Net的客户端,使用C#编写),说明,中文方括号[]表示名词. 在上一个教程中,我们改进了我们的日志记录系统. 没有使用只能够进行虚 ...

  8. Shell函数使用方法

    Shell函数是一组命令集或语句组成一个可用块.利用函数可以简化脚本编写.函数要求先定义再使用,调用函数时直接使用函数名即可.这里主要介绍shell编程中函数定义.调用.获取函数参数以及获取函数返回值 ...

  9. ARP欺骗与MITM(中间人攻击)实例

    ARP协议(address resolution protocol):地址解析协议 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析 ...

  10. avalon2学习教程 03数据填充

    数据填充是一个模版最基础的功能,直接从JSON(vm)取出数据,放到适当的位置上.在静态模板中,不区分文本与HTML,只看你的字符串是否有< >来决定生成文本节点与元素节点.但MVVM中, ...