依旧是python基础
for循环
s = 'woeudbwieb' for i in s:#s代表可迭代对象 print(i) if 'c' not in s: print('没有c')
列表
每个元素以逗号隔开,可以放任意的数据类型,有序
切片和索引跟字符串相同
常用操作
# 增加 li = ['jiang','chengcheng'] li.append('judy') print(li) # 迭代增加 li = ['jiang','cheng'] li.extend('123')#参数为可迭代对象,分解成元素逐个添加到列表后面
# 小练习,循环增加列表 li = ['jiang','chengcheng'] while 1: new = input('input new :') if new=='q': break else:li.append(new) print(li)
# 插入 li = ['jiang','chengcheng'] li.insert(1,'12')#插入到索引值的前面 print(li)
# 删除 li = ['jiang','chengcheng',1,2,3,4] li.pop() #按索引删除,默认删除最后一个,返回删除元素 li.remove('dudu') #按元素删除,没有返回值 li.clear() #清空列表 del li #在内存中删除整个列表 del li[2:]#切片删除
# 修改 li = ['jiang','chengcheng',1,2,3,4] li[2] = 'hlb' # 切片修改 li[2:4] = 'i am beatiful girl'#任意多个字符 print(li)
# 排序(列表中元素是同一类型) list = [1,2,3,4,7,6,5,8,0,9] list.sort(reverse=True)#默认false->正向排序 list.reverse()#反转
# 列表嵌套
list = [['jiang','cheng','cheng'],'is','a','beautiful','girl']
#循环打印嵌套列表 l = [1,2,3,5,'jcc',[1,5,3],'beauty'] for i in l: if isinstance(i,list): for j in i: print(j) else:print(i)
list在循环中删除的状况
#测试循环中删除元素 list1 = [1,2,3,4,5] for i in range(len(list1)):#进入循环时range(len(list1))的数值已经固定,[0,1,2,3,4] print(i) del list1[i]#i = 3时报错,IndexError: list assignment index out of range print(list1) for i in range(len(list1)): if i%2!=0: list1.remove(list1[i]) print(list1)#虽然没有报错,但是结果是错误的 #删除奇数位的元素 #1.list的切片 print(list1[::2]) # 2. list2 = [] for i in range(len(list1)): if i%2==0: list2.append(list1[i]) list1 = list2 print(list2) print(list1)
元组
可循环,可切片,不可修改
可变数据类型:列表list,字典dict,集合set 不可hash
不可变数据类型:元组tuple,bool,int,str 可hash
常用操作
tuple = (1,2,3,'jiang','cheng','cheng',['is','a','beautiful','girl']) tuple[0] = '1'#报错,不可修改 tuple[6][2] = 'handsome'#可以修改
join
s = 'jcc' lis = ['1','2','3']#list里边只能放字符串,不能放数字,且不能嵌套 s1 = '*'.join(lis)#可以放可迭代对象,以*连接元素,形成一个新的字符串
range
for i in range(0,10,2):#打印 print(i) for i in range(10,1,-1):#倒叙打印2-10 print(i) for i in range(1,10,-1):#不会报错,什么都不打印 print(i)
字典
key必须是不可变数据类型
优势:key值组成hash表,二分方法查找,查询速度快
存储大量的关系型数据
无序
常用操作
#字典 dict dic = {'age':19,'name':'jcc'} dic1 = {'age':22} #增加 dic['high'] = 160 dic.setdefault('weight',49) #修改 dic['name'] = 'jiangcc' dic.update(dic1)#把dic1中的键值对更新到dic中,有就改,没有就不改 dic.setdefault('weight',50)#不做改变,体重增加一公斤都不行 #删除 dic.pop('age')#删除有返回值,返回删除的元素 dic.popitem()#随机删除 dic.clear()#清空字典 del dic['name']#删除键值对,没找不到会报错 #查 dic.keys()#得到一个和列表相似的数据类型,把字典中的键放入 dic.values()#得到一个和列表相似的数据类型,把字典中的值放入 dic.items()#得到一个列表里边 嵌套多个元组
# 循环键值对 for k,v in dic.items(): print(k,v) print(dic.get('name1'))#如果没有查到不报错,返回None v = dic['name1']#查不到报错 # 字典嵌套 dic = { 'name':['jcc','hlb'], 'hobby':{ 'boy':'cool' }, 'age':18 } dic['age'] = 16 dic['name'].append('jiangchengcheng') dic['name'][0] = 'JCC' print(dic)
一些小知识
# 用一行代码交换ab的值 a,b = 1,2 print(a,b) a,b = b,a print(a,b)
#当数字在-5-256之间 创建多个数字的地址相同,因为有小数据池 i1 = 6 i2 = 6 #内存地址相同 i3 = 300 i4= 300 #内存地址不相同
=,== is
= ->赋值
== ->比较值是否相等
is ->比较内存地址是否相等
id()-->查看内存地址
17:42