• python笔记二(list,元组,切片,字典,数据类型列表操作)


    今天我们接着说Python

    一、数据类型是什么鬼?
    计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。

    二、整形和浮点型
    整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄、工资、成绩等等这样的数据就可以用int类型,有正整数、负整数和0,浮点型的也就是小数类型(folat)的,带小数点的

    age=25
    b = 5.23
    print(age)
    print(b)
    View Code

     三,布尔类型

    1 a = True
    2 b = False
    3 a=1
    4 b=2
    5 print(a>b)
    View Code

    四.list列表

    1.怎么取列表的值,通过下标取

    1 new_stus = ['admin','admin1','admin3','柯南','朽木真']
    2 # 列表,list 数组,array
    3 # 编号叫做下标,索引,角标
    4 # 最前面一个元素的下标是0,最后面一个元素的下标是-1
    5 print(new_stus[0])
    6 print(new_stus[-1])

    2.给列表增加一个值

    1 cits = ['admin']
    2 # 增加一个值
    3 cits.append('珠海') #在列表末尾增加一个元素
    4 cits.insert(0,'广州') #insert的下标从0开始,不能写负数,在指定位置增加数据
    5 cits.append('北京')
    6 print(cits)

     3.删除一个值

    1 #删一个值
    2 cits.pop(0) #删除指定位置的元素
    3 cits.remove('北京')#删除指定的元素
    4 cits.clear()#清空list
    5 del cits[-1] #删除指定位置的,-1代表末尾的元素
    6 print(cits)
    View Code

    4.修改列表

    cits[1]='南江' #修改的时候如果指定的下标不存在,会报错
    cits[2]='山西'
    print(cits)
    

    5.查询列表  

    1 print(cits[0]) #指定位置的
    2 print(cits.index('广州'))#获取元素的下标,如果找不到那个元素的话会报错
    3 print(cits.count('广州'))#看元素在list里面出现了多少次
    4 print(cits)
    View Code

    6.list反转字符串lis.reverse()和lis[::-1]的区别和定义的字符串转list,list如何转string类型

     1 a=['s','w','r','h','t']
     2 v=str(a)
     3 t="".join(a)#list转换为string类型得用这个函数才可以不能直接转换
     4 print(v)
     5 print(t)
     6 print(type(v))
     7 print(type(t))
     8 
     9 b = ('asdfgh')
    10 c=list(b)#定义的字符串可以直接转换为list
    11 
    12 print(a.index('s')) #原有s的下标是0
    13 print(a[::-1])#反转字符串 ,产生一个新的list,不会改变原来list的值和下标
    14 print(a.index('s'))#转义之后s的下标依然为0
    15 print(b[::-1])
    16 a.reverse()#就是把这个list反转了一下,自己不会返回东西,所以不能直接print,改变原来list的值
    17 print(a.index('s'))#转义之后的下标是4
    18 print(a) #直接输出反转之后的结果
    19 c.reverse()
    20 print(c)
    21 #reverse这个函数是list特有的,定义的字符串不能直接反转输出,需要转换为list之后才能反转输出
    View Code

     7.排序,升序和降序

    1 nums=['d','s','h','a','z','x']
    2 nums.sort()#排序 升序
    3 nums.sort(reverse=True) #排序,降序
    4 print(nums)
    View Code

    8.合并list

    1 cits=['admin','admin2']
    2 cities2=['厦门','深圳','成都']
    3 print(cits+cities2) #合并list
    4 print(cities2*2) #乘以几,就是把这个值重复几次
    View Code

    9.list多为数组的显示

    1 word = ['asda','dddsf','wer',
    2         ['price','num',123,['hello','usa']]] #三维数组 里面套了几层叫几维数组
    3 
    4 print(word[-1][-1][1])
    View Code

    10.list的小练习

     1 #注校验用户名是否合法:
     2 # 输入账号密码
     3 # 如果账号存在的,提示已经注册,如果不存在的,提示注册
     4 # 不能为空
     5 # 用户名长度在6-12之间
     6 # 最多输入3次
     7 b=['admin','张三','李四']
     8 for i in range(3):
     9     username=input('请输入用户名').strip()
    10     if len(username)>5 and len(username)<13:
    11         if b.count(username)>0:
    12             print('姓名已经被注册')
    13         else:
    14             print('注册成功')
    15             break
    16     else:
    17         print('姓名不合法,用户名长度在6-12之间')
    18 else:
    19     print('最多输入3次')
    View Code

    11.list循环

    1 # for 循环在循环可迭代对象的时候每次循环的是里面的每一个元素
    2 lists = ['admin1','w','d','v',['1','4','2']]
    3 for name in lists:
    4     if type(name)==list: #判断一个变量的类型
    5         for i in name:
    6             print(i)
    7     print(name)
    View Code

    12.list的循环练习

     1 stus=[['小明','未交'],
     2       ['小白','已交'], ['小紫','已交'],
     3       ['小红','未交'], ['小绿','未交'],
     4       ['小黄','未交'], ['小黑','已交']]
     5 
     6 pass_list=[]
     7 fail_list=[]
     8 for i in stus:
     9     if i[1]=='未交':
    10         fail_list.append(i)
    11     else:
    12         pass_list.append(i)
    13 print(fail_list)
    14 print(pass_list)
    View Code

    13.list列表合并

    1 a=[]
    2 a.append('aa')
    3 b=[1,2]
    4 print(a+b)
    5 a.extend(b)#合并列表
    6 print()
    View Code

    三.切片:切片其实就是list取值的一种方式

    1 nums=['admin','admin1','admin2','admin3']
    2 print(nums[1:3]) #切换顾头不顾尾,(不顾尾就是不包含最后一个下标)
    3 print(nums[1:]) #如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写
    4 print(nums[:2])#如果从头开始取,取到后面某个下标结束,那么开头的下标可以不写
    5 print(nums[:])#取所有的
    View Code

    1.range也是顾头不顾尾

    1 for i in range(3): #range也是顾头不顾尾
    2     print(i)
    View Code

    2.切片最后一位写参数的话,代表步长

    1 lis=list(range(1,21))
    2 print(lis)
    3 print(lis[:10:2])#最后一个参数取值的话,是代表步长,隔几个取一个
    4 # print(lis[::-1])#反转字符串 ,产生一个新的list,不会改变原来list的值和下标
    5 # 如果步长是整数的话,从左往右开始取值。
    6 # 如果步长是负数的话,是从右边往左边开始取值
    View Code

    3.切片操作同样适用于字符串

    1 info='你好,今天天气很好'
    2 print(info[2::-1])
    View Code
    #可变变量
    #里面的原色你可以随便修改
    # list 元组
    #不可变变量
    #里面值不能修改
    #string 字符串不能修改

    四.元组

    元组也是一个list,他和list的区别是,元组里面元素无法修改
    用小括号括起来的就是元组,无法增删查改

    1.获取元组的值

     1 # 如果元组里面,只有一个元素的话,那么你必须在这个元素后面增加一个逗号
     2 t=(1,2,3,4,5,6,7)
     3 lists=('sds','dssd','sdsdsd')
     4 words=(1,)
     5 words2=('sdsd',)
     6 print(type(words))
     7 print(type(words2))
     8 # 元组里面只有这两个方法
     9 t.index(2) #找到元素的下标
    10 t.count(2)#找到元素的个数
    11 print(t.index(2))
    12 print(t.count(2))
    View Code

    五。字典

    字典都是以key --- values 的键值对存在的

    优点:获取数据方便,速度快

    1.查询数据

    1 infos = {'name':'admin','sex':'','addr':'珠海'}
    2 #
    3 print(infos.get('name1'))#取不到key的话,就是none
    4 print(infos.get('name1',110))#如果取不到值的话,就是默认110
    5 print(infos['sex']) #如果key不存在会报错,用中括号这种
    View Code

    2.增加数据

    1 infos['phone']=12334332343 #增加一个key
    2 infos.setdefault('小金库','200万')
    3 print(infos)
    4 #字典是无序的,随意排序的
    5 
    6 infos['name']='小花' #如果key存在的话,会修改原来key对应的value
    7 infos.setdefault('name','小花') #如果key存在的话,不会修改原来的key值
    8 print(infos)
    View Code

    3.修改数据

    #修改 只有这一种方式
    infos['name']='小花'

    4.删除数据

    1 infos.pop('name') #指定key来删除
    2 infos.popitem()#随机删除一个key
    3 del infos['phone'] #指定key来删除
    4 infos.clear() #清空字典
    5 print(infos)
    View Code

    5.获取值的方法

    1 print(infos.values()) #获取到字典所有的values
    2 print(infos.keys())  #获取到字典所有的key
    3 print(infos.items()) #获取到字典所有的k -v
    View Code

    6。把b字典元素添加到a元素里面

    a={"key1":"v1"}
    b={"key2":"v2"}
    a.update(b) #把b字典元素加入到a元素里面
    print(a)

    7.字典小练习

     1 users = {}
     2 #所有的账号和密码
     3 #username  pwd cpwd
     4 # print('123456' in users) #字典里面用in判断的话,只是判断key是否存在,value是不判断的
     5 for i in range(3):
     6     username= input('账号:').strip()
     7     passwd = input('密码:').strip()
     8     cpasswd= input('确认密码:').strip()
     9     if username =='' or passwd=='' or cpasswd=='':
    10         print('用户名或密码不能为空')
    11     elif username in users:
    12         print('用户已经被注册')
    13     elif passwd!=cpasswd:
    14         print('两次密码要一致')
    15     else:
    16         print('注册成功')
    17         users.setdefault(username,passwd)
    18         break
    19 else:
    20     print('错误次数过多')
    21 
    22 print(users)
    View Code

    8.字典的练习2

     1 people = {
     2     '马天宇':{
     3         'age':18,
     4         'money':200,
     5         'clothes':'100套',
     6         'hzp':'n多',
     7         'shoes':['nike','addis','乔丹']
     8     },
     9     '花千骨':{
    10         'age':19,
    11         'money':30,
    12         'cars':{'japan':['普拉多',['库懒惰']]},
    13         'house':['三环一套','四环两套']
    14     }
    15 }
    16 
    17 print(people['花千骨']['cars']['japan'][1])
    18 print(people['花千骨']['cars']['japan'][0:])
    19 print(people['花千骨']['money']+200)
    20 people['马天宇']['shoes'].append('牧马人')
    21 print(people)
    22 
    23 for i in people:
    24     print(i)
    25 
    26 for k,v in people.items(): #同时循环的时候,同时取key和valu
    27     print(k,'==>',v)
    View Code

    六,常用的字符串方法

     1 a = '    字 符 串  
    
    
    
    
    
    
     '
     2 c= a.strip()  #默认去掉字符串两边的空格和换行符
     3 c = a.lstrip() #默认去掉左边的空格和换行符
     4 c = a.rstrip() #默认去掉右边的空格和换行符
     5 print('c...',c)
     6 print('a...',a)
     7 
     8 words = 'day is a wonderfulday'
     9 print(words.strip('day')) #如果strip方法指定一个值得话,那么会去掉这两个值
    10 print(words.count('a'))#统计字符串出现的次数
    11 print(words.index('is'))#找下标,如果元素找不到的话会报错
    12 print(words.find('z'))#找下标,如果元素找不到的话,返回-1
    13 print(words.replace('day','DAY')) #替换字符串
    14 print(words.isdigit()) #判断字符串是否为纯数字
    15 print(words.startswith('day')) #判断是否以某个字符串开头
    16 print(words.endswith('day'))#判断是否以某个字符串结尾
    17 print(words.upper()) #变成大写的
    18 print(words.lower()) #变成小写的
    19 
    20 username = 'asdfgh'
    21 print(username.isalpha())#判断字符串是否全为字母
    22 print(username.isalnum())#判断是否包含字母和数字,他是只要有字母或者数字就返回true
    View Code

    以上都是python的基本操作,小伙伴们如果想熟悉的话,多练习,熟能生巧哦

  • 相关阅读:
    科学计算和可视化,做数据分析与雷达图。
    Leetcode 429 N叉树的层序遍历
    Leetcode 867转置矩阵
    Leetcode 832 翻转图像
    Leetcode 1052 爱生气的书店老板
    Leetcode 337打家劫舍 III
    Leetcode 766 托普利茨矩阵
    Leetcode 1438绝对差不超过限制的最长连续子数组
    Leetcode 697 数组的度
    Leetcode 567 字符串的排列
  • 原文地址:https://www.cnblogs.com/xmhd/p/8665235.html
Copyright © 2020-2023  润新知