9、基础类型之列表、元组、字典

一、列表类型

1.1、定义:存储同种属性多个值

1.2、定义:l=[1,1.2,'a']

1.3、类型转换:

凡是能够被for循环遍历的类型都可以当做参数传给list()转换成列表:

res=list('hello')
print(res)
res=list({'k1':111,'k2':222,'k3':3333})
print(res)

1.4、内置方法  (重要)

1.4.1、按照索引存取值(正向存取+反向存取):既可以取也可以改

l=[111,'egon','hello']
正向取
print(l[0])
反向取
print(l[-1])
可以取也可以改:索引存在则修改对应的值
l[0]=222
print(l)
无论是取值操作还是赋值操作:索引不存在则报错
l[3]=333

1.4.2、切片  [  ]

l = [111, 'egon', 'hello', 'a', 'b', 'c', 'd', [1, 2, 3]]
print(l[0:5:2]) # 0 2 4
print(l[0:len(l)])
new_l=l[:] # 切片等同于拷贝行为,而且相当于浅copy

1.4.3、长度   len

print(len([1, 2, 3]))

1.4.4、成员运算in 和not in

print('aaa' in ['aaa', 1, 2])
print(1 in ['aaa', 1, 2])

1.4.5、往列表里面添加值

1.4.5.1、后面追加  append

l=[111,'egon','hello']
l.append(3333)
l.append(4444)
print(l)

1.4.5.2、按位置插入值  insert

l=[111,'egon','hello']
l.insert(0,'alex')
print(l)

1.4.5.3、添加字符或者字符串   extend

new_l=[1,2,3]
l=[111,'egon','hello']
l.extend(new_l)
l.extend('abc')
print(l)

1.4.6、删除

1.4.6.1、单纯的删除没有返回值    del

l = [111, 'egon', 'hello']
del l[1]
x =del l[1] # 抛出异常,不支持赋值语法
print(l)

1.4.6.2、 根据索引删除,会返回删除的值   pop 

l = [111, 'egon', 'hello']
l.pop() # 不指定索引默认删除最后一个
l.pop()
print(l)

1.4.6.3、根据元素删除值,remove

l = [111, 'egon', [1,2,3],'hello']
l.remove([1,2,3])
print(l)
res=l.remove('egon')
print(res) # None

1.5、需要掌握的内置方法   

1.5.1、计数 count

l = [1, 'aaa', 'bbb','aaa','aaa']
1、l.count()
print(l.count('aaa'))

1.5.2、寻找  找不到报错,找到回复1     index

l = [1, 'aaa', 'bbb','aaa','aaa']
print(l.index('aaa'))
print(l.index('aaaaaaaaa')) # 找不到报错

1.5.3、清除   clear

l = [1, 'aaa', 'bbb','aaa','aaa']
l.clear()
print(l)

 1.5.4、顺序翻转  reverse

l = [1, 'egon','alex','lxx']l.reverse()print(l)

1.5.5、 升序和降序 (同种类型)    sort  

l=[11,-3,9,2,3.1]
l.sort() # 默认从小到大排,称之为升序
l.sort(reverse=True) # 从大到小排,设置为降序
print(l)

1.5.6、队列,先进先出  FIFO

l=[]
# 入队操作
l.append('first')
l.append('second')
l.append('third')

print(l)
# 出队操作
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))

1.5.7、堆栈,后进先出  LIFO

 

l.append('first')
l.append('second')
l.append('third')

print(l)
# 出队操作
print(l.pop())
print(l.pop())
print(l.pop())

二、元组

2.1、定义

  一个不可变的列表,是不可变类型。

2.2、作用

  按照索引存放多个值,只能用来读写。

2.3、定义

  在括号用逗号分隔多个任意属性的元素

t=(1,1.3,'aa') # t=tuple((1,1.3,'aa'))
print(t,type(t))

2.4、类型转换

# print(tuple('hello'))
# print(tuple([1,2,3]))
# print(tuple({'a1':111,'a2':333}))

2.6、内置方法(重要)

2.6.1、按照索引取值,不能改

t=('aa','bbb','cc')
print(t[0])
print(t[-1])

2.6.2、切片

t=('aa','bbb','cc','dd','eee')print(t[0:3])print(t[::-1])

2.6.3、长度   len

t=('aa','bbb','cc','dd','eee')print(len(t))

2.6.4、成员运算   in

print('aa' in t)

2.6.5、寻找 index

t=(2,3,111,111,111,111)
print(t.index(111))

2.6.6、计数  count

t=(2,3,111,111,111,111)
print(t.count(111))

三、字典

3.1、定义:在大括号内用逗号分隔多个key:value,key属于不可变类型,且不可重复,否则使用最后一个值,value是可变类型。

3.2、造字典

3.2.1、方法一    大括号里面带着key和value

d={'k1':111,(1,2,3):222} # d=dict(...)
print(d['k1'])
print(d[(1,2,3)])
print(type(d))
d={} # 默认定义出来的是空字典
print(d,type(d))

3.2.2、方法二   使用dict改变等号

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

3.2.3、方法三、通过特殊表达方式:两两对应的列表进行更改

info=[
    ['name','egon'],
    ('age',18),
    ['gender','male']
res=dict(info) # 一行代码搞定上述for循环的工作
print(res)

3.2.4、快速初始化一个空字典{},往字典里面填key

keys=['name','age','gender']
d={}.fromkeys(keys,None) # 一行代码搞定上述for循环的工作
print(d)

3.3、内置方法(重要)

3.3.1、按照key存取值,可存可取

d={'k1':111}
针对赋值操作:key存在,则修改
d['k1']=222
针对赋值操作:key不存在,则创建新值
d['k2']=3333
print(d)

3.3.2、长度  len

d={'k1':111,'k2':2222,'k1':3333,'k1':4444}
print(d)
print(len(d))

3.3.3、运算符in和not in

d={'k1':111,'k2':2222}
print('k1' in d)
print(111 in d)

3.3.4、删除

3.3.4.1、通用删除   del

d={'k1':111,'k2':2222}
del d['k1']
print(d)

3.3.4.2、根据key指定删除   pop  返回key对应的value

d={'k1':111,'k2':2222}
res=d.pop('k2')
print(d)
print(res)

3.3.4.3、 随机删除  返回元组

res=d.popitem()
print(d)
print(res)

3.3.5、循环 for 关于items  需要对应key和value

d={'k1':111,'k2':2222}
for k,v in d.items():
    print(k,v)

3.3.6、需要掌握的内置方法

3.3.6.1、清除 clear

d={'k1':111}
d.clear()

3.3.6.2、更新 update

d={'k1':111}

d.update({'k2':222,'k3':333,'k1':111111111111111})

print(d)

3.3.6.3、取值,没有不会报错,返回none,可以用来判断  get

d.get() #根据key取值,容错性好
print(d['k2'])  # key不存在则报错

3.3.6.4、添加,有则不更改,返回原value    

       没有则添加,返回现value          setdefault

info={'name':'egon'}
res=info.setdefault('name','egon')
print(info)
print(res)

 

posted @ 2020-03-11 21:19  疏星淡月  阅读(170)  评论(0编辑  收藏  举报