zoukankan      html  css  js  c++  java
  • Python基础-列表、元组、字典、字符串

     

    多维数组

    nums1 = [1,2,3] #一维数组
    nums2 = [1,2,3,[4,56]] #二维数组
    nums3 = [1,2,3,4,['a','b','c','d','e',['一','二','三']],['四','五']] #三维数组
    nums4 = [1,2,3,4,['a','b','c','d','e',['一','二','三',[1,2,3]]]] #四维数组
    print(nums2[3][1]) #56
    print(nums2[-1][-1]) #56
    print(nums3[4][5][1]) #'二'
    print(nums3[5][1]) #'五'
    print(nums3[-1][-1]) #'五'
    

    list

    list中可以放不同类型的值,list的下标从0开始。

    #定义一个list
    stu_name = ['张三', '李四', '王五', 1, 1.5]
    print(stu_name) #打印list中全部内容
    print(stu_name[0]) #打印'张三'
    len()
    
    length = len(stu_name) #list的长度,list中元素的个数 

    list增加元素

    append()
    insert()
    
    stu_name.append('朱六') #在list末尾添加一个元素
    stu_name.insert(0, '小军') #在指定位置插入一个元素
    print(stu_name)

    list修改元素

    stu_name[6] = '铲铲'
    print(stu_name)

    list删除元素

    pop()
    remove()
    del
    reverse()
    
    stu_name.pop() #删除最后一个元素
    stu_name.pop(4) #删除指定下标的元素
    stu_name.remove('小军') #删除指定的元素,有多个相同的元素,会删除第一个
    del stu_name[-1] #删除指定位置的元素,正数从正序开始,负数从倒序开始
    print(stu_name)

    list查找元素

    count()
    index()
    reverse()
    clear()
    
    my_list = ['小黑', '小白', 1, 1, 2, 1.5]
    print(my_list[-1])
    print(my_list[0])
    print(my_list.count(1)) #查询某个元素在list里面出现的次数
    print(my_list.index(1)) #查找元素的下标,多个相同元素取第一个,不存在的无素会报错
    print(my_list.reverse()) #直接打印结果为None
    print(my_list) #输出时list被反转
    
    my_list.clear() #list被清空
    print(my_list)
    sort()
    sort(reverse=True)
    
    nums = [9.23, 9, 3, 6, 1, 0]
    nums.sort() #从小到大排序
    nums.sort(reverse=True) #从大到小排序
    nums.extend(my_list) #把一个list里面的元素加入
    print(nums)
    
    new_list = nums + my_list + stu_name #合并
    print(new_list)
    print(new_list * 3) #复制几次

    list练习

    users = ['wrp','nhy','haha']
    #校验用户名是否存在
    
    for i in range(5):
        username = input("请输入用户名:")
        # 如果用户不存在的话,说明可以注册
        #if users.count(username) > 0:
        if username not in users: #in就是判断在不在里面
            print("用户未注册,可以注册")
            users.append(username)
        else:
            print("用户已经被注册")
            
    #最原始的list取值方式,通过每次计算下标来获取元素
    passwords = ['123456','123123','7891234','password']
    count = 0
    while count < len(passwords):
        s = passwords[count]
        print(s)
        count+=1
    
    passwords = ['123456','123123','7891234','password']
    #for循环直接循环一个list,每次循环取它的值得
    for p in passwords:
        print(p)
    #修改passwords中的内容
    passwords = ['123456','123123','7891234','password']
    index = 0
    for p in passwords:
        passwords[index] = 'abc'+p
        index+=1
    print(passwords)
    #使用枚举函数,会计算下标和元素
    passwords = ['123456','123123','7891234','password']
    for index,p in enumerate(passwords):
        passwords[index] = 'abc' + p
        print(index, p)
    print(passwords)

    切片
    切片同样适合于字符串

    l = ['a','b','c','d','e','f','g','h','i']
    print(l[0:3]) #顾头顾尾巴
    print(l[:5]) #如果冒号前没写,代表从0开始取
    print(l[4:]) #如果冒号后没有写,代表到结束
    print(l[:]) #冒号前后都不写,取全部
    print(l[0:8:2]) #从0开始,算上每隔2取一个
    
    
    nums = list(range(1,101)) #range()生成一个list
    print(nums[1::2]) #取100以内的偶数
    print(nums[::2]) #取100以内的奇数
    print(nums[::-2]) #步长为正数,从左到右取,步长为负数,从右到左取
    

    字符串切片

    #字符串切片
    words = '中秋节要上课'
    print(words[::-1])
    for index,w in enumerate(words):
        print(index, w)

    回文算法

    #回文算法,反过来倒过去都一样,如'上海自来水来自海上',12321
    for i in range(10):
        str = input("请输入一个字符串:")
        
        if len(str) < 1:
                print("字符串长度必须大于是")
        elif str == str[::-1]:
            print("是回文")
        else:
            print("不是回文")

    元组

    元组不能被修改,如果元组只有一个元素,需要在定义后添加逗号,不然会认为括号是运算符
    创建元组

    tup1 = ()
    tup2 = (1,2,3,4,5,6)
    tup3 = ('google','baidu',1000,2000)
    tup4 = (50,)#元组中只有一个元素时,在后面添加逗号

    访问元组

    tup = ('google','baidu',1000,2000)
    print(tup[1])
    

    修改元组

    tup = ('google','baidu',1000,2000)
    tup1 = ('abc','xyz')
    tup3 = tup + tup1
    print(tup3)

    删除元组

    tup = ('google','baidu',1000,2000)
    del tup

    元组运算

    #元组运算
    print(len((1,2,3)))
    print((1,2,3)+(4,5,6))
    print(3 in(1,2,3))
    
    for x in(1,2,3):
        print(x)
    
    tup =(1,2,3,4,5)
    len(tup) #求元组长度
    max(tup) #求元组中最大值
    min(tup) #求元组中最小值
    
    seq = [1,2,3,4,5]
    tup = tuple(seq) #将列表换为元组
    

    字典

    xiaojun ={
        'name':'xioajun',
        'age': 21,
        'sex':'男',
        'addr':'北京',
        'phone':'13266568006'
    }

    增加

    stus = {}
    stus['name'] = '小军'
    stus['name'] = '海龙'
    stus.setdefault('name', '小帆') #如果这个key已存在,setdefault不会修改这个key的值
    stus.setdefault('age',  18)
    stus.setdefault('sex', '男')
    stus.setdefault('addr', '北京')
    stus.setdefault('phone', '1961231231')
    stus.update({'money':1000}) #将一个字典增加到stus中

    修改

    stus['name'] = '小鹏'
    

    查询

    print(stus['addr'])
    print(stus.get('sex','男')) #如果查不到,get()中第二个参数就返回默认值
    print(stus.keys()) #所有的key
    print(stus.values()) #所有的value
    
    for k in stus:
        print(k, '===>',stus.get(k))
    
    for k,v in stus.items():
        print(k, '====>', v)

    删除

    del stus['phone']
    stus.pop('addr')
    stus.popitem() #随机删除
    del stus #删除整个字典

    字典多层嵌套取值

    all_stus = {
        'xiaojun':{
            'name': 'xiaojun',
            'age': 21,
            'sex': '男',
            'addr': '北京',
            'phone': '13266568006',
            'id': 1,
            'cars':['牧马人','911','野马','劳斯莱斯'],
        },
        'hailong':{
            'name': 'hailong',
            'age': 21,
            'sex': '男',
            'addr': '北京',
            'phone': '13266569006',
            'id': 2,
            'bags':{
                'qianbao':['lv', 'ysl'],
                'beibao':['coach','abc']
            }
        }
    }
    
    all_stus['xiaojun']['cars'].append('五菱宏光') #给xiaojun的car中添加值
    print(len(all_stus['xiaojun']['cars'])) #统计xiaojun中car的数量
    all_stus['hailong']['sex'] = '女'  #将hailong的sex改为女
    all_stus['hailong']['bags']['qianbao'].remove('lv') #删除bags中qianbao中的lv
    all_stus['hailong']['bags']['kuabao']=['bac'] #增加一个kuabao
    all_stus['hailong']['bags']['kuabao'].append('lv2') #在kuabao中增加lv2
    all_stus['hailong']['bags'].pop('kuabao') #删除kuabao
    

    字符串常用方法

    字串符一经定义,不会被改变,对其操作会重新生成一个被处理后的新字符串。

    password = ' 123456 
     456789 '
    print(password.strip())  #默认去掉字符串两边的空格和换行符
    print(password.rstrip()) #右边的空格
    print(password.lstrip()) #左边的空格
    
    password1 = 'jpg 1233456789 .jpg'
    print(password1.strip('.jpg')) #掉去字符串两边的.jpg
    
    print(password1.upper()) #转成大写
    print(password1.lower()) #转成小写
    print(password1.capitalize()) #把首字母改成大写
    print(password1.count('jpg')) #字符串出现的次数
    print(password.replace('谭爱玲','上山打老虎')) #找到了就替换字符串,找不到也不报错
    
    filename = 'a.mp3'
    print(filename.endswith('.mp3')) #判断是否以xxx结尾
    print(filename.startswith('196')) #判断以xxx开头
    #'{name},{age}'.format(name='hhh',age=18)
    
    names = '小军,海龙,杨帆,大朋'
    names1 = '小军 海龙 杨帆     大朋'
    print(names.split(',')) #以分隔符将字符串分割成list
    print(names1.split()) #不指定时默认以空格切割
    users = ['username','user2','user3']
    #username,user2,user3
    print(str(users))
    res = ','.join(users) #连接可以循环的元素,和split()相反,把list变成了字符串
    print(res) #结果为username,user2,user3
    print(s.find("z")) #找不到时返回-1
    #print(s.index("z")) #找不到时报错
    print(s.count("z")) #找元素个数
    print('0'.isdigit()) #判断是否是正整数
    print(s.islower()) #是否小写
    print(s.isupper()) #是否大写
    print('abc123'.isalnum()) #字符串中是否有英文或数字
    print('abc'.isalpha()) #只能是字母
    print(s.isspace()) #是否空格
    print('1a123'.isidentifier()) #是否为合法的变量名
    print(s.splitlines()) #以换行符分割分字符串
    
    new_l = []
    for i in l:
        si = str(i)
        new_l.append(si.zfill(5)) #zfill()用于位数补0,会补足括号中位数
    print(new_l)
     
    import string
    print(string.ascii_lowercase) #大写
    print(string.ascii_uppercase) #小写
    print(string.digits) #数字
    print(string.punctuation) #特殊符号
    print(string.ascii_letters) #大小写
  • 相关阅读:
    window下安装两个mysql服务
    Linux 下 FastDFS v5.08 分布式文件系统的安装
    linux 下 php 安装 ZeroMQ 扩展
    win 下 nginx 与 php的配置
    Navicat Premium11连接Oracle出现ORA-28547:connection to server failed
    dedecms的自定义模块
    php 的多进程实践
    php多进程 防止出现僵尸进程
    php Pthread 多线程 (一) 基本介绍
    php 使用PHPExcel 导出数据为Excel
  • 原文地址:https://www.cnblogs.com/xxxtony/p/11558287.html
Copyright © 2011-2022 走看看