#list:[]表示 可以增删查改
# 增
# li = ['fs','99','你哦了','77 ']
# while 1:
# n = input('>>>:')
# if n.strip().upper() == 'Q':
# break
# else:
# li.append(n)
# print(li)
# li.insert(4,'tt')#直接插入 不用变量去接,也不能全输出
# print(li)
# li.extend('可迭代对象')#int bool 值也, 是不可以迭代的
# li.extend('123')#拆分最小的 1,2,3
#删 ,
#1按索引
# li.pop() # 括号是里的索引,根据下标去删.默认输删除最后一个
# li.pop(1)
# print(li)
# name = li.pop(1)
# print(name,li)#有返回值
#2按元素去删除
# li.remove('元素')#按元素删除
# print(li)
# li.clear() #清空
# print(li)
#
# del li #直接删除列表
# print(li)
#
# 切片删除
# del li[2:]
# print(li)
# 改
# li[0] ='gg'#按索引直接改
# print(li)
#切片改
# li = ['fs','99','你哦了','77 ']
# li[2:6]='fdsf'
# print(li)
# li[0:3] = [12,56,'gjg','ioo','ookk']
# print(li)
# 改
# for i in li :
# print(i)
# print(li[2:4])
# 公共方法
# l = len(li)#长度
# print(l)
# a = li.count('taibai')
# print(a)
# 列表只能用index找下标
# print(li.index('元素'))#元素找索引
#排序
# li = [1,4,5,7,3,0]
# li.sort()#直接排序.小到大
# print(li)
# li.sort(reverse=True )#倒着排序
# print(li)
# li.reverse()#反转 [0,3,7,5,4,1]
# print(li)
# 列表的嵌套
# li = ['taibai','大表哥','666','女神',['是否','飞',89],68]
# print(li[1][0])#找大
# print(li[4][2])#找89
# n = li[0].capitalize()
# print(n)
# print(li[0].capitalize())
# li[0] = li[0].capitalize()
# print(li[0])
# li[2] = '大帅哥'# 替换666 位大帅哥
# print(li[2])
# 替换
# print(li[2].replace('6','日天',1))
# li[2] = li[2].replace('6','日天',1)# 放回原来位置 666替换第一个 6 当 2 是前俩个 替换 .形成新的字符串
# print(li[2])
#元组 只读 不可以更改 儿子不可以变 孙子可以变
# tu = (1,2,3,'alex',[3,4,5,'taibai'],'too')
# tu[1]
# print(tu[1])
# print(tu[3])
# print(tu[3:5])
# print(tu[4][3].capitalize())#首字母大写
# print(tu[4].append('sb'))#taibai后边加入一个字符串
# for i in tu:
# print(i)
#jion 列表转化为字符串 split 把字符串转化为列表
# s = 'Alex'
# s1 = '/'.join(s)
# print(s1)
# s2 = '0'.join(s)
# print(s2)
# s3 = s.split()
# print(s3)
#range
# for i in range(0,18):
# print(i)
# for i in range(2,10,2) :#偶数
# print(i)
# for i in range(1,10,2) :# 奇数
# print(i)
# for i in range(10,0,-1):# 当 (0,10,-1) 运行时空的
# print(i)
# 不可变数据类型 元组 bool int str 可哈希
#字典 优点 二分法去查询 存储大量的关系型数据
# dic1 = {'age':'18','name':'jon','sex':'male',}
# 增
# dic1['big']=66#直接加,没有建值直接加入
# dic1['age']=16#有直接覆盖 18变为 16了
# print(dic1)
# dic1.setdefault('weight') # weight后没有数的话,值默认为None
# dic1.setdefault('weight','oo')#建值对为 weight:'oo
# dic1.setdefault('age','oo')#有原来建值 对不做任何改变 ,没有才添加
# print(dic1)
#删
# dic1.pop('建')#有返回值,按键删除 常用的
# dic1 = {'age':'18','name':'jon','sex':'male',}
# dic1.pop('age')
# n = dic1.pop('age')#
# print(dic1)#{'name': 'jon', 'sex': 'male'}
# print(n)#18
# n = dic1.pop('erge')#会报错 改为 n = dic1.pop('erge','提示') 很重要哦
# n = dic1.pop('erge','没有这个建哦')
# print(n) #没有这个建哦
# dic1.clear() #清空字典
# del dic1['name']# 也可以按键删除
# print(dic1)
# 改
# dic1['age']=16 #覆盖也是改
'''
dic1 = {'age':'18','name':'jon','sex':'male',}
dic2 = {'name':'jgv','age':'8','weight':'66',}
dic2.update(dic1)
print(dic1)
print(dic2)
把一更新到二中 爬虫时用
'''
#查
dic1 = {'age':'18','name':'jon','sex':'male',}
# print(dic1.keys())#打印建
# print(dic1.values())#打印值
# print(dic1.items())#打印建值 元组 里边 是键值
# for i in dic1:#什么都不写默认打印键
# print(i)
''''
for i in dic1.items() :#键值对
print(i)
结果
('age', '18')
('name', 'jon')
('sex', 'male')
#
# a,b = 1,2
# a,b = b,a
# print(a,b)#ab 互换
for k,v in dic1.items() :
print(k,v)
结果
age 18
name jon
sex male
SyntaxError: unexpected EOF while parsing 表示语法错误少一个括号
'''
# print(dic1['name']) #打印 出值 没有的话会报错
# print(dic1.get('name1','没有这个建') #打印 出值 没有的话会报错
在来一遍
字典变化不大
list 列表 []
'增删改查'
增
li = [1,2,3,'nihao','n','你好啊']
li.append('对了')#只能 在后边添加
print(li)
li.insert(0,'gg')#根据索引来添加,是没有默认在后边添加的
print(li)
li.extend('qwer')#把 qwer拆分开 分别加到列表后边,只能有一个''的内容
print(li)
删
li.pop(1)#按索引删除,不能切片删除,
print(li.pop(1))#有返回你要删除的元素
del li#删除整列表
print(li)
del li[1:3]#按切片切忘记了.就长这样的
print(li)
li = [1,2,3,'nihao','n','你好啊']
li = li.clear()#输出 None没有用内容 表示已经清空
print(li)
li.remove('你好啊')# 按元素删除 ,移除的意思
print(li)
改
li[1] = '替换内容'
li[1] = [123,'大宝哥']#列表嵌套列表
print(li)
li[0:3] = 'dasfggdfh'#把字符串改成字符放进去
print(li)
li[0:3] = ('练啊','人才','胸带')#一个位置一个的放进去()与[]是一样的,('练啊','人才','胸带')等于['练啊','人才','胸带']
print(li)
li = [1,2,3,'nihao','n','你好啊']
查
li = li[2]#索引查找
li = li[1:4]#切片查找
for i in li :
print(i)
print(li[3])
公用方法 数字列表排序
li = [1,23,4,6,9,4,2,]
li.sort()#不能写成li =li.sort(),否则输出None.正向排序
print(li)
li = li.sort()#输出None
print(li)
逆向排序
li.sort(reverse=True)#把里边的False改为True
print(li)
反转
li.reverse()#把li反过来
print(li)
元组 uplit 只读 不可更改, 元组里的列表可以改 (儿子不能改,孙子可以改)
li = ('ho','gg',1,3,['cp',75],689,0)
print(li[4][0][1])#找出p
只能查,孙子可改的跟列表一样
数字元组(1,100)表示1234567...100 用range
for i in range(1,88,2): #有步长
print(i)
for i in range(0,10,2):#偶数
print(i)
for i in range(1,10,2):#奇数
print(i)
for i in range(1,88,2):
不可变数据型 列如 bool 元组 int str
字典 用二分法 可以存储大量的数据
dic1 = {'name':'beibi','age':'18','sex':'male'}#键值对
有增删查改
增
dic1['big']= 66 #直接加入键值对.不重复的话直接加入,重复的话直接覆盖
print(dic1)
dic1['name']='gegu'
print(dic1)
用setdefault 去添加.好处是原有的不会被覆盖
dic1.setdefault('name',88)#(键,值)当没有值的时候默认值为None
print(dic1)
删 一#删,一样都是用pop
dic1.pop('name')#有返回值 ('键'),当键不存在的话报错 可以改为这样('键','提示语')
print(dic1)
print(dic1.pop('n','不存在'))
dic1.clear()#清空字典{}
print(dic1)
del dic1#删除整个字典
print(dic1)
del dic1['name']#按键删除 键值对
print(dic1)
改 覆盖
dic1['name'] = 14 #直接覆盖了
字典更新 把一更新到原来的
dic1 = {'age':'18','name':'jon','sex':'male',}
dic2 = {'name':'jgv','age':'8','weight':'66',}
dic2.update(dic1)
# print(dic1)
print(dic2)
把一更新到二中 爬虫时用