列表 list (类)
li = [1, 12, 9, ‘age’] 通过list类创建的对象
要点:
中括号括起来
以逗号分割每个元素
列表中的元素可以是数字 字符串 列表(列表可以嵌套列表) 布尔值
‘集合’内部可以置放任何东西
索引取值
切片的结果也是个列表
可以for循环和whlie循环
列表可以被修改
链表
列表元素可以被修改
改变
li = [1, 12, 9]
li[1] = 120
print(li)
result
[1, 120, 9]
删除
del li[1]
in操作
li = [1,133]
v = 133 in li
print(v)
列表中的元素以逗号分割做为整体
操作
li = [1,12,9,‘age’, ['海绵宝宝‘,[’19‘ 10’],],]
想要取到海绵宝宝
li[4][0]
print(li)
结果就是海绵宝宝
int不能for循环*************************?(是因为int是一个整体,不理解)
转换
字符串转换列表,****************************(?)
列表转换字符串,****************************(?)
int不能和str相加
list类
list类的一个对象
li = [ 11, 22,33,44]
差数
v = li。append(5) 追加
print(v) 扩展原列表,可迭代对象
在原来值最后追加
print(v)-------------------------------[11,22,33,44,5] 结果为None(空,什么都不是,空值)
清空列表
li.clear()
拷贝(浅拷贝)
li.copy
计算某个元素出现的次数
li.count(XX)----------------------------------count必须要带个参数
def extend(self, iterable)
li = [11, 22, 33, 22, 44]
li.extend[98989, ‘不得了’]
print(li)
result--------------------[11, 22, 33, 22, 44, 98989, '不得了‘]
根据值获取当前值的索引位置
li = [11, 22, 33, 44]
li.index(33)------------------找到元素位置
result--------------------------- 2
插入
li = [ 11, 22, 33, 22, 44]
li.instert(0, 999)
0-----------------------指定位置 999-----------------------------插入元素
删除
li = [ 11, 22, 33, 22, 44]
v = li.pop()------------------------------------默认将最后一个值删除,并获取删除的值。( )加索引值,可以删除指定位置的值。
print(v)
删除列表中的指定值,左边优先。
li = [ 11, 22, 33, 22, 44]
li.remore(22)
print(li)
将当前的列表进行反转
li = [1, 2, 3]
v = li.reverse
print(v)--------------------------------------------[3, 2,1]
sort 排序 -------------------从小到大
sort(reverse=True)------------从大到小
li对象调用append 方法
字符串不支持索引改值,字符串创建后不可修改
列表是有顺序的,列表的元素是可以被修改
列表list
列表指定改值
li = [ 11, 22, 44, 55]
li[0] = 999
元组 tuple 可以看作列表的2次加工,意思是不可修改,元组和list有很多相同的特性
元组元素不可修改,不能被增加或被删除
一般写元组的时候在最后加个逗号(以便区分)
元组可以切片,索引,长度,循环,包含
可以for循环的就是可以迭代对象,(可迭代对象包含字符串,列表,元组,*可以互相转换*)
1. v = tuple(s)
print(v) ---------字符串转元组
2. v = tuple(li)
print(v) ------------------list转化成元组
join在元组(只能是字符串str,不能是数字int)可以使用
v = '_'.join(tu)
print(v)
extend(扩展)
li = ['asdf', 'asdfsdfasdfa']
li.extend((11,22,33))
print(li)
元组是有序列的
要获取33的值
tu = (111, 'alex', ( 11, 22), [ ( 33, 44)]
v = tu[3][0][0]
元组的第一元素是不可以修改的,或者删除或者增加
但是嵌套在元组里的列表的元素是可以修改的
1. count 获取指定元素在元组中出现的次数
tu.count(23)
2.index 获取指定元素在元组中的索引位置
tu.index(233)
********************************************************遗留问题,列表是怎么插入新元素的,指定位置
创建是不允许被修改的数据类型用元组
要修改元组时可以先转换成列表在修改,再转换回去
字典 dict
info = {
'k' :‘v1’ --------------------------键值对
}
字典的value可以是任何值,字典是由哈希值***********?
列表不能作为字典的key,因为列表可以被修改
元组可以作为字典的key,因为元组是不可以修改的
字典是不可以作为字典的key
特殊现象**************我忘记是什么意思
info = {True :‘123’}
print(info)
result*******************{123}
True = 1
False = 0
布尔值可以作为字典的key,但是有可能会和数字(0或1)重复,那样会报错
字典是否有序的吗
每次打印结果顺序都是顺序不同的,所以字典是无序的
找指定元素和元组类似的:
元组是有序列的,要获取33的值
tu = (111, 'alex', ( 11, 22), [ ( 33, 44)]
v = tu[3][0][0]
字典是无序的所以不能切片
字典元素可以删除(支持del删除)
字典可以for循环,不能while循环
1. 默认for循环中只有key
for item in info key():
print(item)
2. 获取value值
for item in info value():
print(item)
3. 同时拿到key 和 value
a. for item in info .keys():
print(item, info[item])
b. for k , v in info.item(): item键值对?
print(k, v)
*************key如果重复了怎么办?
shallow copy 浅拷贝
根据序列,创建字典,并指定统一的值
dict.fromkeys( ['k1', 123, '999'], 123) *************?,这是赋到哪里的值
v = dic[ ]******************这个是什么,是寻找指定的值吗
如果不存在会报错
v = dic.get['k11' ,1111111111]
print(v)
根据key获取值,如果找不到,不会报错,
并可以指定返回指定的值(1111111111111,意思就是可以自己设置),默认是None
dic = {
'k1':'v1'
'k2':'v2'
}
v = dic.pop('k11', 90) 没有删除到返回默认值(90,可以自己设置)
print(dic,v)
result**********{ 'k2':'v2' , 'k1':'v1'}90 ********如果删了k1,在90的地方会返回v1这个值
def popitem(随机删除,并获取值)
设置值:
如果已经存在,不设置,并获取当前key对应的值
如果不存在,就设置,获取当前key对应的值
def.setdefault('k1111', ‘123’)
print(dic,v)
更新
dic.update( {‘k1’:‘1111111’,‘k3’:123} )
print(dic)
存在就更新,不存在就添加
dic.update('k1'=123, 'k2'=345, 'k4'=567)---------------------支持这种写法
布尔值本身就是0和1
真的类型太多了,所以只要记住假的就行
fales:
None
“”--------------空字符
()------------空元组
{}--------------空字典
[]-------------空列表
总结必须要会的
keys()
values()
items()
get()
update()
用多就会熟
**********************************************************************
所有总结(必须要会的)
1.数字:
int()
2.字符串
replace()
find()
join()
strip()
startswith()
split()
upper / lower
format()
3.列表
append()
extend()
insert()
索引
切片
循环
4.元组
略
索引,切片,循环
修改,增加,删除都不行
5.字典
get()
update()
keys()
values()
items()
for
索引
补充in判断也是循环判断,判断某个key是不在字典里
over