Python基础2
一、列表
1、list 取值是通过下标进行取的
l = ['a','b','c' ] #一维数组 l2 = [1,2,3,4,["abc",'123','456'] ] #二维数组 l3 = [1,2,3,4,["abc",'123','456',["a",'b','c']]] #三维数组
2、list 增、删、修改
#增 l = ['a','b','c' ] l.append('d') #在末尾增加元素 l.insert(0,'e') #指定位置增加元素 l.insert(7,'k') #如果你指定的下标没有,那么久加到最后面 #修改 l[2] = 98.98 #删除 l.pop(3) #指定下标删除 l.remove('王宇建') #指定元素删除 del l[0] #指定下标删除 print(l.count('1')) #统计元素个数 print(l.index('1')) #找某个元素的下标 print(l.reverse()) #反转list l =['1','2','3'] l2 = [4,5,2,24,23,3252,352,1252,235] l2.sort(reverse=False) #顺序排序 l2.sort(reverse=True) #倒序排序 l2.clear() #清空list l3 = l + l2 #直接相加就是把两个list合并成一个list l.extend(l2) #把l2里面的元素加入到l里面
3、list 循环
#list可以直接循环 students = ['a','b','c'] for i in students: print(i)
4、list生成式
#list生成式 l3=[] for i in range(10): if i%2==0: l3.append(i)
二、字典
1、字典取值、新增、修改、删除
#字典格式是key - value d = { 'name':'xmb', 'idcard_no':1212, 'sex':'未知', 'addr':'广州', '手机号':18620838281 } #取值 print(d['money']) #取不存在的key会报错 print(d.get('money',0)) #取不存在的key返回none,填写值,不存在返回填写的值 #增加key d['sex'] = 500 #如果key存在,就修改它的值 d.setdefault('car','bmw') #如果key存在,那就不管了 #修改 d['sex'] = '女' #修改 #删除 d.pop('sex') #删除指定的key,会返回删除的值 del d['sex'] #删除指定的key d.clear() #清空字典 print(d.keys()) #获取字典里面所有的key print(d.values()) #获取字典里面所有的value
2、字典循环
d = { "id": 1, "name": "xmb", "sex": "男", "age": 27, "addr": "广州", "grade": "金牛座", "phone": "18317155664", "gold": 100 } #方式一: for k in d: #直接循环字典,每次取的是字典里面的key value = d.get(k) #循环的时候同时取到key和value print(k,value) print(d.items()) #直接获取字典里的key/value print(d.keys()) #获取字典里的所有key #判断 #if 'id' in d: #如果字典用in来判断的话,它判断的是key存在不存在 if 'id' in d.keys(): print('存在')
例子:
s2={'xmb1':'1111','xmb2':'1222','xmb3':'3333'} for i in range(3): username=input('username:').strip() password=input('password:').strip() if username=='' or password=='': print("账号/密码不能为空") elif username in s2: print('登陆的用户存在') if password==s2[username]: print("账号/密码正确") break else: print("账号/密码错误") else: print('账号不存在') else: print("超过了次数")
三、集合
#集合自动去重 s = {1,2,3,1,2,3} print(set(s)) #定义空集合 s2 = set() #关系测试 #集合是无序的 a = {1,2,3} b = {3,4,5} #取交集 print(a & b) print(a.intersection(b)) #并集,把两个集合合并到一起,然后取掉重复的 print(a.union(b)) print(a|b) #差集,在a集合里面存在,但是在b集合里面没有的 print( a - b ) print( a.difference(b)) #往集合增加元素 a.add('123') # 删除集合里的元素 a.remove('2')
四、元组
#元组,元组里面的数据不可以修改 tup = (1,2,3,4) tup1 = ('abc','xmb') #访问元组 print('tup:',tup[1]) print('tup:',tup[2:3]) #组合元组 tup2 = tup + tup1 print(tup2)
五、切片
#切片就是对list一个范围的取值,顾头不顾尾 l = [1,2,3,4,5,6,7,8,9,10] s='abc1234' L2 = l[::-1] #第三个数字是步长 L3 = s[::2] print(L2) print(L3)
1、可变数据类型:list、dict
2、不可变数据类型:tuple、str、float、int
3、不要循环删list,会导致下标错乱
l = [1,1,2,3,4,5,6,7,8,9,10] for i in l: if i%2!=0: l.remove(i) print(l)
4、浅拷贝内存地址不变,深拷贝的话,内存地址会变
import copy l = [1,2,3,4,5,6] # l2 = l #浅拷贝 l2 = copy.deepcopy(l) #深拷贝 print('l的内存地址',id(l)) print('l2的内存地址',id(l2))
六、文件读写
f = open('users.txt',encoding='utf-8') #打开文件 result = f.read() #读文件 print(result.split(',')) #以,分割字符串
七、string模块
import string print(string.ascii_uppercase) #所有大写字母 print(string.ascii_lowercase) #所有小写字母 print(string.digits) #所有数字 print(string.punctuation) #所有特殊字符 print(string.ascii_letters) #所有大小写字母
八、random模块
import random l=[1.2,2.3,3.3,4.3,5.3,6.3] result = random.sample(l,3) #从序列中随机获取的三个元素 result1 = random.choice(l) #从序列中随机获取一个元素 result2 = random.randint(1,1000) #随机生成指定范围的整数 result3 = random.random() #生成0到1随机浮点数 result4 = random.uniform(1,10) #随机生产指定范围的浮点数 result5 = random.randrange(10,20,5) #从指定范围内,按指定基数递增的集合中 获取一个随机数(如:5是递增数) result6 = random.shuffle(l) #打乱序列中元素的顺序