一.列表

(一)获取列表中的元素

1.通过索引获取列表中的元素

lst=[1,2.34,'hello',False]
ret=lst[4]
print(ret)
结果:索引越界,报错
ret1=lst[0]
print(ret1)
结果:1

2.使用for循环获取列表中的元素

lst=[1,2.34,'hello',False]
for i in lst:
    print(i)

结果:1,2.34,'hello',False

(二)列表的增加

append

追加,将数据追加到列表后面

inster

插入,指定索引位置,添加元素,查到指定位置的前面

+

列表之间可以相加,将所有内容放到一个新的列表,不能自动去重

extend

可迭代的,不会自动去重

可迭代的:能取出其中的每个元素。

lst=['悟空','八戒','唐三藏']
lst.append('白龙马')
print(lst)
结果:['悟空','白龙马','八戒','唐三藏']

lst.inster(1,'哈哈哈')
prin(lst)
print(lst)
结果:['悟空','']

lst2=['宋江','李逵']
lst.extend(lst2)
print(lst)
结果:['悟空','八戒','唐三藏','宋江','李逵']


s='hello'
lst.extend(s)
print(lst)
结果:['悟空','八戒','唐三藏','h','e','l','l','o']

(三)列表的删除操作

 

列表的删除操作

 

pop()

指定索引删除数据,如果索引不到会报错

remove()

根据内容删除

clear

清除所有内容,只剩空列表[ ]

del

删除列表,从内容中将变量删除,打印输出会报错

 

lst=['悟空','八戒','唐三藏']
lst.pop(0)
print(lst)
结果:['八戒','唐三藏']


lst.remove('八戒')
print(lst)
结果:['悟空','唐三藏']


lst.clear()
print(list)
结果:[ ]


lst.del()
print(lst)
结果:报错

(四)列表的修改操作

 通过索引修改内容

lst=['悟空','八戒','唐三藏']
lst[0]='猴哥'
print(lst)
结果:['猴哥','八戒','唐三藏']

(五)列表的查询

通过索引获取元素

 

index()

根据内容返回索引,可以指定开始和结束的位置

count()计数

 

切片

[起始值,终止值,步长]----->取完后,列表内容不变

 

lst=['悟空','八戒','唐三藏','悟空','悟空']
ret=lst[1]
print(ret)
结果:八戒


index=lst.index('八戒')
print(index)
结果:1



ret=lst.count('悟空',1,len(lst))
print(ret)
结果:3

(六)列表的排序

sort

默认升序

reverse

降序      lst.sort(reverse=True)

 

(七)列表的拷贝

浅拷贝:对于浅拷贝,第一层创建的新的内容地址,从第二层开始,指的都是同一个内存地址。

python对列表里面套元组 python从列表中提取嵌套元组_元组

lst=['貂蝉','西施']
lst1=['悟空','八戒',lst]
print(lst1)
 结果:['悟空','八戒',['貂蝉','西施']]

lst1[0]='猴哥'
print(lst1)
结果:['猴哥','八戒',['貂蝉','西施']]


lst1[2][0]='杨贵妃'
print(lst1)
print(lst)
结果:['猴哥','八戒',['杨贵妃','西施']]
      ['悟空','八戒',['杨贵妃','西施']]

深度拷贝:导入模块copy

import copy 

copy.deepcopy()

lst=['貂蝉','西施']

lst1=['悟空','八戒',lst]
lst2=['悟空','八戒',lst]
lst2[2][0]='杨贵妃'
print(lst2)
结果:['悟空','八戒',['杨贵妃','西施']]

lst1中的lst ID不等于 lst2 重lst的ID

 

二.元组

元组特点:元组是有序的,不能修改的

格式:变量名称=(元素一,元素二.,.....)

注意:可以存放任意类型的数据

元组的优点:元组是不可变得,所以遍历元组必列表要快

切片切出来的仍然是元组

tup=(1,2.2,True,'赵四','刘能')
tup1=tup[0:4:1]
print(tup1)
结果:(1,2.2,True,'赵四')

(一)、访问多维元组

使用多个变量来接受元组中的值

注意:变量的个数一定要和元组中的个数一一对应

name,age,weight=('李华',19,120)
print(name)
print(age)
print(weight)
结果:李华
      19
      120

面试小例子:

1.a=10,b=20 .现在想要a,b值互换

a,b=(b,a)
print(a)
print(b)
结果:20
      10

2.遍历去除元组中的每个值  tup=(('zs',10),('yu',9),('tg',20))

tup=(('zs',10),('yu',9),('tg',20))
for name,age in tup:
    print(anme,age)
结果:zs  10
      yu  9
     tg   20

(二)、元组的修改

注意:元组本身不能修改,元组中的元素如果是可变的数据类型,才能最元素进行修改

tup=(1,3.4,True,[3,5,6])
tup[3].append('加油')
print(tup)
结果:(1,3.4,True,[3,5,6,'加油'])

(三)、元组中逗号的魅力

tup1=(1)
tup2=(1,)
print(type(tup1))
print(type(tup2))
结果:tup1  ----->int
      tup2------->tuple

(四)、tuple和list的区别

lst=[1,2,3]
tup=tuple(lst)
print(tup)
结果:(1,2,3)


tup3=('a','b','c')
ret=list(tup3)
print(ret)
结果:['a','b','c']

(五)、元组的方法

index

索引

count

计数

tup=('a','b','c','c','b','x')
ret=tup.index('b')
print(ret)
结果:1


ret1=tup.index('c',2,len(tup))
print(ret1)
结果:2


ret2=tup.index('a',2,len(tup))
print(ret)
结果:报错

三.字典

(一)、字典的定义

1.字典是有序的,可修改的,元素成键值对的形式,以逗号隔开的,以大括号包围的序列

格式:变量名={key1:value1,key2:value2,key3:value3......}

注意:使用的符号都是英文下的,

2.字典的key只能是不可变类型(可哈希类型),value可以是任何类型。

可变类型对应不可哈希类型

dic={'name':'zs','age':19,[1,2,3]:(12,3,4)}

print(dic)

结果:会报错,key值不能使可变类型

(二)、字典的增删改查

1.增加

通过key值

info[key]=value

setdefault

key,default_value

dic={'name':'易烊千玺','age':18}
dic[height]=1.78
print(dic)
结果:{'name':'易烊千玺','age':18,'height':1.78}

 

(三)、删除

pop

 

popitem

随机删除

clear

清除所有内容,只留下空字典{ }

del

从内存清除字典,打印输出会报错

dic={'name':'悟空','age':100,'height':1.70,'weight':130}
dic.pop('name')
print(dic)
结果:{'age':100,'height':1.70,'weight':130}


dic.popitem()
print(dic)
结果:任意一个键值对被删除

dic.clear()
print(dic)
结果:{}

del dic
print(dic)
结果:报错

 

(四)、字典的修改

通过键值

update方法

 

dic={'name':'长城','age':12,'address':'保定'}
dic['age']=11
print(dic)
结果:{'name':'长城','age':11,'address':'保定'}


dic1={'特色':'雾霾','weight':'156'}
dic.update(dic1)
print(dic)
结果:{'name':'长城','age':12,'address':'保定','特色':'雾霾','weight':'156'}

(五)、字典的查找

keys

获取所有键值

values

获取values值

get

根据键值获取对应的值,定义一个变量接受返回值

update

更新指定键的内容,如果不存在,直接添加

items

一个键值对,返回元组套列表

len

测字典长度

dic={'name':'zs','age':10,'height':1.70}
ret=dic.keys
print(ret)
结果:['name','age','height']

ret1=dic.values
print(ret1)
结果:['zs',10,1.70]

ret2=dic.get('name')
print(ret2)
结果:zs


ret3=dic.items()
print(ret3)
结果:['name':'zs','age':10,'height':1.70]

print(len(dic))
结果:3

formkeys

tup=(1,2,3)
ret=dict.foemkeys(tup)
print(ret)
结果:{1:None,2:None,3:None}

(六)、in和not in

获取所有的键值:

dic={'name':'zs','age':18,'weight':130}
keys=dic.keys()
if 'name' in keys:
    dic['nemr']='赵四'
else:
    dic['name']='尼古拉斯'
print(dic)


for key in dic:
    print(key)


for item in dic.items():
    print(item)
结果:('name':'zs')
      ('age':18)
      ('weight':130)


for key,value in dic.item()
    print(key,value)
结果:name zs
      age  18
      weight 130

四、集合

(一)、定义

1.无序的,可以自动去重,关系测试

变量名={元素1,元素2,元素3.....}

变量名=set(可迭代内容)如:list,元组,字符串,字典

注意:集合中的值不能用可变类型

set1={1,2,'hello',True}
print(set1)
结果:{1,2,'hello'}

(二)、类型转换

l

lst=['a','b','c']
set1=set(lst)
print(set1)
结果:{'a','b','c'}

(三)、集合的添加

add

update

set1={'悟空','八戒'}
set1.add('唐三藏')
print(set1)
结果:{'悟空','八戒','唐三藏'}

set2={'悟空','白骨精'}
set1.update(set2)
print(set1)
结果:{'悟空','八戒','唐三藏','白骨精'}

(四)、集合的删除
 

pop

随机删除一个

remove

根据指定内容删除

clear

清除所有内容,只剩set()

del

从内存删除集合,打印输出报错

(五)、集合的遍历

交集

&   intersection

取公共部分

反交集

^ symmetric_difference

取除去公共部分的内容

并集

|   union

取除去重复的部分的所由内容

差集

- difference

取set1,set2 中除去公共部分的内容

子集

<  issubset

 

超集

>  issuperset

 

1.数字转化布尔值:除了0其他的都为True,0为False