列表元组和字典的内置方法

一丶列表

  1、作用:按位置存放多个值
  2、定义
    l=[1,2.2,'a'] # l=list([1,2.2,'a'])
    print(type(l))

  3、类型转换: 但凡能够被for循环遍历的类型都可以当做参数传给list()转成列表
    res=list('hello')
    print(res)

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

  4.优先掌握的内置方法

  4.1按索引取改值

l=['as', 111, 'sd']
# 正向取
print(l[0])
# 反向取
print(l[-1])
# 改值
l[1] = 222
print(l)

# 无论是取还是该索引不存在就报错
l[3] = 'sss'
print(l)

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

l = [111, 'egon', 'hello', 'a', 'b', 'c', 'd', [1, 2, 3]]
print(l[0:3])
print(l[0:5:2])

# 切片等同于拷贝行为,而且相当于浅copy
new_l=l[:] 
print(id(l),id(new_l))

l[-1][0]=1111111
print(l)
print(new_l)

#倒叙输出
print(l[::-1])

  4.3长度

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

  4.4成员运算in和not in

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

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

  4.5添加值的几种方法

# append列表尾部追加元素
l=['as', 111, 'sd']
l.append(555)
print(l)

# insert在指定位置插入元素
l=['as', 111, 'sd']
l.insert(1,'asd') #1是索引的位置
print(l)

# extend一次性在列表尾部添加值
new_l = [1,2,3]
l=['as', 111, 'sd']
l.extend(new_l)
print(l)

  4.6删除的几种方式

# del 通用的删除方法,只是单纯的删除、没有返回值
l=['as', 111, 'sd']
del l[1]
print(l)
# res = del l[1]  del没有返回值 报错

# pop()根据索引删除,会返回删除的值
l=['as', 111, 'sd']
l.pop() #不指定索引默认删除最后一个
print(l)
res = l.pop(1) #返回被删除的元素
print(res)

# remove()根据元素删除,返回None
l=['as', 111, 'sd']
res = l.remove(111)#从左往右查找第一个括号内要删除的元素
print(l)
print(res)

  需要掌握的操作

l = [1, 'aaa', 'bbb','aaa','aaa']

# 1.count 计算该元素在列表中出现的次数
print(l.count('aaa'))

# 2.index 找出该元素在列表中出现的第一个索引位置
print(l.index('aaa'))
print(l.index('aaaaaaaaa')) # 找不到报错

# 3.clear清空列表
l.clear()
print(l)

# 4.reverse()颠倒列表内元素顺序
l=[11,22,33,44]
l.reverse()
print(l)

# 5.sort()给列表内所有元素排序
# 排序时列表之间元素必须是相同数据类型,不可混搭,否则报错  默认从小到大排序
l = [22,44,98,46,24]
l.sort()
print(l)
l.sort(reverse=True)  #reverse从大到小排,设置为降序 默认是False
print(l)
View Code

  补充

# 1、队列: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))

# 2、堆栈:LIFO,后进先出
l=[]
# 入栈操作
l.append('first')
l.append('second')
l.append('third')

print(l)
# 出栈操作
print(l.pop())
print(l.pop())
print(l.pop())
View Code

   

二丶元组

  元组就是"一个不可变的列表"

  1.作用:按照索引/位置存放多个值,只用于读不用于改

  2.定义:()内用逗号分隔开多个任意类型的元素

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

    t=(10,) # 强调:如果元组内只有一个值,则必须加一个逗号,否则()就只是包含的意思而非定义元组
    print(t,type(t))
    ps:元组一旦更改里面的元素就会报错 但是当元组内的元素存在可变类型时,不更改该元素的容器内存地址,而是更改容器里面元素的内存地址则可以成功

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

t=(10,) # 强调:如果元组内只有一个值,则必须加一个逗号,否则()就只是包含的意思而非定义元组
print(t,type(t))

ps:元组一旦更改里面的元素就会报错 但是当元组内的元素存在可变类型时,不更改该元素的容器内存地址,而是更改容器里面元素的内存地址则可以成功
View Code

  3.类型转换
    print(tuple('hello'))
    print(tuple([1,2,3]))
    print(tuple({'a1':111,'a2':333}))

  

  4.内置方法

t = (11,'5j',55,'sdasd')
#1、按索引取值(正向取+反向取):只能取
print(t[0])
print(t[-1])

#2、切片(顾头不顾尾,步长)
print(t[0:3])
print(t[::-1])

#3、长度len
print(len(t))

#4、成员运算in和not in
print('aa' in t)
print(11 not in t)

#5、index和字符串列表相同
print(t.index(11))
print(t.index(1111111111))

#6、count()和字符串列表相同
print(11)

  

三丶字典

  1、作用:用来存储多种属性的值

  2、定义:{}内用逗号分隔开多个key:value,其中value可以使任意类型,但是key必须是不可变类型,且不能重复

    造字典的几种方式
    方式一:
      d={'k1':111,(1,2,3):222} # d={}默认定义出来的是空字典
      print(d,type(d))
    方式二:
      d=dict(x=1,y=2,z=3)
      print(d,type(d))

  3、数据类型转换
      info=[
        ['name','jun'],
        ('age',18),
        ['gender','male']
      ]
      d={}
      for k,v in info: # k,v=['name','egon'],
      d[k]=v
      print(d)

    方式三:
      res=dict(info) # 一行代码搞定上述for循环的工作
      print(res)
    方式四:
      keys=['name','age','gender']
      d={}
      for k in keys:
        d[k]=None
      print(d)
      d={}.fromkeys(keys,None) # 一行代码搞定上述for循环的工作
      print(d)   

  4、字典的内置方法

    优先掌握  

dic = {
     'name': 'xxx',
     'age': 18,
     'hobbies': ['play game', 'basketball']
}
# 1、按key存取值:可存可取
# 1.1、取
dic['name']
dic['hobbies'][1]
# 1.2、对于赋值操作,如果key原先不存在于字典,则会新增key:value
dic['phone'] = '51561651'
# 1.3、对于赋值操作,如果key原先存在于字典,则会修改对应value的值
dic['name'] = 'tony'

# 2、长度len
len(dic)

# 3、成员运算in和not in
print('name' in dic)  # 判断某个值是否是字典的key

# 4、删除
# 4.1、通用删除del 输入的是key
del dict['name']

# 4.2、pop删除:根据key删除元素,返回删除key对应的那个value值
res=dict.pop('age')
print(dict,res)

# 4.3、popitem删除:随机删除,返回元组(删除的key,删除的value)
res=dict.popitem()
print(dict,res)

# 5、键keys(),值values(),键值对items()
dic = {'k1': 18, 'k2': [11,22], 'k3': 'sdf'}

# 获取字典所有的key
dic.keys()
['k1','k2','k3']
# 获取字典所有的value
dic.values()
[18,[11,22],'sdf']
# 获取字典所有的键值对
dic.items()
[('k1', 18), ('k2', [11,22]), ('k3', 'sdf')]
dict(d.items())
{'k1': 18, 'k2': [11,22], 'k3': 'sdf'}

#6、for循环
d={'k1':111,'k2':2222,'k3':666}
# 默认遍历字典的key
for k in d:
    print(k)

# 遍历字典的key
for k in d.keys():
    print(k)

# 遍历字典的value
for v in d.values():
    print(v)

# 遍历字典的键值对
for k,v in d.items():
    print(k,v)
View Code

     需要掌握

d={'k1':111}
#1、d.clear()清空字典

#2、d.update()用新字典更新旧字典,有则修改,无则添加
d.update({'k2':222,'k3':333,'k1':11111111})
print(d)

#3、d.get() :根据key取值,容错性好
print(d['k2'])  # key不存在则报错
print(d.get('k1')) # 111
print(d.get('k2')) # key不存在不报错,返回None

#4、d.setdefault()
# 4.1 如果key有则不添加,返回字典中key对应的值
info={'name':'egon'}
res=info.setdefault('name','egon')
print(info,res)

# 4.2 如果key没有则添加,返回字典中key对应的值
res=info.setdefault('age','18')
print(info,res)
View Code
原文地址:https://www.cnblogs.com/bk134/p/12461687.html