• python学习列表、字典、元祖、字符串


    一、列表

    Python内置的一种数据类型是列表:list,它是一种有序的集合,可添加和删除其中的元素。

    列表的创建:将用逗号分隔的不同数据项用方括号括起来即可

    获取list元素的个数:len()

    1 name = ['小白','小黑','小花','小灰'] #创建列表
    2 print(name)
    3 print(len(name))

    1、列表方法及其基本操作

    1.1 增

    append():追加元素到列表末尾

    insert():插入元素到列表指定位置

    1 name = ['小白','小黑','小花','小灰'] #创建列表
    2 
    3 #
    4 name.append('小黄')
    5 print(name)
    6 name.insert(0,'小绿')
    7 print(name)

    1.2 删

    pop():删除列表末尾的元素,pop(i)删除指定位置的元素,i为索引位置

    remove():移除列表中某个值的第一个匹配项

    del 列表名[i]:删除指定位置的元素,i为索引位置

    clear():清空列表中的元素

    1 name = ['小白','小黑','小花','小黑','小灰'] #创建列表
    2 
    3 #
    4 name.pop() #删除末尾元素
    5 print(name)
    6 name.pop(0) #删除第一个元素
    7 print(name)
    8 name.remove('小黑') #删除列表中值为小黑的第一个元素
    9 print(name)

     

    1 name = ['小白','小黑','小花','小灰'] #创建列表
    2 
    3 #
    4 del name[-1] #删除指定位置的元素
    5 print(name)
    6 name.clear() #清空列表中的元素
    7 print(name)

     

    1.3 修改

    使用索引标记为某个特定的的元素赋值

    1 name = ['小白','小黑','小花','小灰'] #创建列表
    2 
    3 #修改
    4 name[3] = '小黄'
    5 print(name)
    6 name[4] = '小绿' #修改的时候如果指定的下标不存在,会报错

    1.4 查

    index():从列表中找出某个值第一个匹配项的索引位置

    count():统计某个元素在列表里出现的次数

    1 name = ['小白','小黑','小花','小灰'] #创建列表
    2 
    3 #
    4 print(name[-1]) #取值 下标为-1的时候,就取最后一个元素
    5 print(name.index('小花')) #获取元素的下标,如果找不到那个元素的话,会报错
    6 print(name.count('小花')) #查看元素在list里面出现了多少次

    1.5 反转

    reverse():反转列表,会改变原列表的值

    1 name = ['小白','小黑','小花','小灰'] #创建列表
    2 
    3 #反转
    4 name.reverse() #就是把这个list反转一下
    5 print(name)

    1.6 排序

    sort():对列表进行排序;升序:列表名.sort();降序:列表名.sort(reverse=True)

    1 nums = [9,2,34,12,34,457,2342]
    2 # nums = ['b','f','e','z','g','h']
    3 nums.sort() #升序
    4 print(nums)
    5 nums.sort(reverse=True) #排序,降序
    6 print(nums)

    1.7 合并列表

    cities = ['北京','上海']
    cities2 = ['成都','深圳','广州']
    #方法一:
    print(cities+cities2)     #不会改变cities,和cities2的值
    
    # 方法二:
    # cities.extend(cities2) #把cities2的元素加到cities中,改变了cities的值
    # print(cities)

    1.8 切片

    切片可以获取多个元素,可理解为:从第几个元素开始,到第几个元素结束,获取他们之间的值;

    切片格式:列表名:[1:10],如要获取name的第一个到第五个元素, 用name[0:6],切片不包含后面那个元素的值的,顾头不顾尾

    前面的下标为0时可省略写为:name[:6];

    切片后面还可以写一个参数,叫做步长。即隔多少个元素取一次,默认不写时就是隔一个取一次。

    切片操作也可以对字符串使用,和列表的用法一样,实例如下:

    1 # 切片
    2 # 切片是list取值的一种方式
    3 nums = ['张三','李四','王某某','周大']
    4         #  0      1      2      3
    5 
    6 print(nums[1:3])  #顾头不顾尾
    7 print(nums[1:]) #如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写
    8 print(nums[:2]) #如果是从头开始取,取到后面某个下标结束,那么开头的下标可以不写
    9 print(nums[:]) #取所有的

     1 lis = list(range(1,21))
     2 print(lis)
     3 print(lis[::2]) #步长,隔几个取一次
     4 print(lis[::-2]) #步长,隔几个取一次
     5 # #如果步长是正数的话,从左往右边开始取值
     6 # ##如果步长是负数的话,从右边往左边开始取值
     7 
     8 print(lis[::-1]) #反转list
     9 print(lis)
    10 print(lis[1::-1])
    11 
    12 lis.reverse()  #改变了原来list的值
    13 new_list = lis[::-1]  #产生了新的一个list,不会改变原来list的值
    14 print(new_list)
    15 print(lis)

    1.9 多维数组

    1 #多维数组
    2 n = [1,2,3]  #1维数组
    3 n2= [  [1,2,3] ,['haha'] ] #二维数组
    4 my = [[1,2,3,4,5,6],['name','age','sex','哈哈',['小明','小黑','小白']],890] #3维数组
    5 print(my[1][4][0])
    6 my[1][4].append('小紫')
    7 my[1][2]='性别'
    8 print(my)
    9 print( len(my) )  #看变量的元素个数,长度

     二、元祖

    元组和列表的区别:元组的值不能改变,一旦创建,就不能再改变了;只能读,无法增删改

    元组的定义方式:用小括号();

    元祖方法:元组只有两个方法,count和index;

    1 #定义元组
    2 cities = ("beijing","shanghai") #一旦定义好,就不能再变了
    3 #cities[0] = "tianjing"  #元组的值不可修改,这样写会报错
    1 #元素操作及方法,只能查不能增删改
    2 print(cities[0])
    3 print(cities.count("beijing"))
    4 print(cities.index("beijing"))

    三、字典

    字典:dict,全称是dictionary,其他语言中也称为map,它具有极快的查找速度;

    字典是一种key-value的数据类型。比如:要存每个人的信息,每个人的编号为key,value就是每个人的信息,这样一个字典就能存所有人的信息了。

    字典的定义:使用{},大括号;每个值用“,”隔开,key和value使用“:”分隔。

    1 #定义字典
    2 info = {
    3     'name':'哈哈',
    4     'age':18,
    5     'sex':'不知道',
    6     'addr':'天通苑',
    7     'qq':19823423,
    8     'email':'shenyang@qq.com'
    9 }

    字典的特性:
    1)字典是无序的;它没有下标,用key来当索引,所以是无序的
    2)字典的key必须是唯一的:因为它是通过key来进行索引的,所以key不能重复

    字典的增删改查方法:

    增加:

     1 #定义字典
     2 info = {
     3     'name':'张三',
     4     'age':18,
     5     'sex':'',
     6     'addr':'天通苑',
     7     'qq':19823423,
     8     'email':'zhangsan@qq.com'
     9 }
    10 
    11 #增加:两种方式
    12 info['class'] = '1班'
    13 info.setdefault('house','一环')
    14 print(info)

    修改:

    1 info['age'] = 38 #修改
    2 print(info)
    3 info.setdefault('age',49)  #setdefault这种方式,如果key已经存在,不管它,如果key不存在的话,就新增。
    4 print(info)

    删除:

    1 #删除
    2 info.pop('sex')  #pop():#标准的删除方法,key不存在时会报错
    3 del info['sex'] #del key不存在时会报错
    4 print(info)
    5 
    6 info.clear()  #清空字典
    7 info.popitem() #随机删除一个key

    查询:

    1 #取值、查询
    2 print(info['addr'])
    3 # print(info['add'])  #传入不存key时报错
    4 
    5 print(info.get('email'))
    6 print(info.get('eeee')) #传入不存在key时,返回None
    7 # print(info.get('eee','ceshi') )#key不存在时,返回后面指定的值
    8 
    9 print('email' in info) #判断email是否在这个字典中,返回True或者False

     查询所有的key,value:

    1 print(info.values())
    2 print(info.keys())

    把一个字典加入到另一字典中:

    1 yaoyuan = {'age':19,'name':'李四'}
    2 info.update(yaoyuan)  #把一个字典加入到另外一个字典里面
    3 print(info)

    循环字典:

    1 for infos in info:  #循环时默认打印字典的key
    2     print(infos)
    3 
    4 #循环取k,v
    5 for k,v in info.items():
    6     print(k,v)

    四、字符串

    字符串:它可以存任意类型的字符串,比如名字,一句话等等

    字符串常用方法:

    1 name = 'apple'
    2 print(name.capitalize()) #把字符串首字母大写
    3 print(name.center(50,'-')) #把字符串居中的
    4 print(name.index('p'))#返回匹配到的第一个元素的位置,找不到下标的时候会报错
    5 print(name.isalnum()) #只能有英文、数字
    6 print(name.isalpha()) #判断是否只为英文的,汉字也可以

     

    1 print(name.count('p')) #查询xx出现的次数
    2 print(name.endswith('.jpg'))#判断字符串是否以xx结尾
    3 print(name.startswith('ap'))#判断字符串是否以xx开头
    4 print(name.upper()) #全转化为大写
    5 print(name.lower()) #全转化为小写
    6 print(name.find('p')) #它找不到元素的时候,不会报错,会返回-1

    1 name = '   apple       '
    2 print(name.isdigit()) #判断是否为纯数字
    3 print(name.isspace()) #判断是否全都是空格
    4 print(name.strip())#去掉字符串两边的东西,默认是去调两边的空格和换行符的
    5 print(name.lstrip())#只去掉左边的
    6 print(name.rstrip())#只去掉右边的
    7 print(name.replace('le','haha')) #替换字符串,把前面的替换成后面的

    1 num ='88'
    2 print(num.zfill(4)) #在字符串前面补0,数字代表补0后字符串的总位数
    3 
    4 names = 'dt,wx,xin,wang'
    5 print(names.split(',')) #1、分割字符串,2、把字符串变成一个list 3、默认是以空格和换行符分割的
    6 
    7 stus = ['hh','dd','ww','haha']
    8 print('.'.join(stus)) #1、是吧list变成字符串的 2、以某个字符串连接

    1 import string
    2 print(string.ascii_letters)  #返回所有的大写+小写字母
    3 print(string.ascii_lowercase) #返回所有的小写字母
    4 print(string.ascii_uppercase) #返回所有的大写字母
    5 print(string.digits) #返回所有的数字
    6 print(string.punctuation) #所有的特殊字符

      备注:字符串的值定义好之后也不能被修改

    #字符串定义好了之后,也不能修改
    s = 'abcEFGabc'
    # s[0]='h' #不能修改,这样修改会报错:TypeError: 'str' object does not support item assignment
    new_s  = s.replace('abc','')  #原来的值不会被修改,这种方法会重新返回一个新的值
    print("s=",s)  #s= abcEFGabc
    print("new_s=",new_s) #new_s= EFG
  • 相关阅读:
    oracle如何查询哪个表数据量大
    SecureRandom生成随机数超慢 导致tomcat启动时间过长的解决办法
    smartctl----硬盘状态监控
    Oracle数据库的状态查询
    jdbc连接数据库使用sid和service_name的区别
    V$INSTANCE 字段说明
    V$PROCESS和V$SESSION,以及使用这两个视图能做什么
    NetOps Defined
    POI 海量数据
    HTML5 CSS3 诱人的实例: 3D立方体旋转动画
  • 原文地址:https://www.cnblogs.com/ddxxn/p/9142215.html
Copyright © 2020-2023  润新知