• 【Python 字符串&元组&字典&集合 04】


    一、字符串

    字符串就是一堆子符组成一串

    1、字符串的切片&反转

    s='alex今天去洗脚城遇到了wusir'
    print(s[:4]) #切alex
    print(s[::-1]) #反转:risuw了到遇城脚洗去天今xela

    2、字符串循环

    for char in s:
        print(char)

    3、修改大小写,关键字upper()大写,lower()小写

    k='q'
    print(k.upper()) #upper()大写
    w='W'
    print(w.lower()) #lower()小写

    4、切割和合并,关键字:split()切割,join()合并

    s = 'alex|alex3714|83'
    l=s.split('|')
    print(l) #['alex', 'alex3714', '83'] -->用|切割
    
    w=':'.join(['alex', 'alex3714', '83'])
    print(w) #alex:alex3714:83  -->用:合并

    5、替换 replace replace('old_str','new_str',countcount替换几个

    s = 'wusir和wusir是一对儿好基友'
    s1=s.replace('wusir','老王') #不加替换数量,默认是全部替换
    print(s1)
    s2=s.replace('wusir','老王',1) #写1代表替换一个,如果写2就替换两个
    print(s2)

     6、去除首尾内容  -->首尾都会去掉,并且是按照一个一个字符进行去掉的

    s3 = '....   wa    haha   ....'
    print(s3.strip('. ')) #去除.和空格
    # 在编写这样的程序时,我们经常需要在末尾加上strip()
    username=input('name:').strip()
    passwd=input('passwd').strip()
    if username=='wusir' and passwd =='wusir':
        print('success')

    7、判断字符串的开始和结尾,startswith开始,endswith结尾

    qq='java'
    ww='python'
    ee='php'
    ll=[qq,ww,ee]
    for i in ll:
        if i.startswith('c++'):
            print('true')
        if i.endswith('php'):
            print('false')

    8、isdigit()判断字符串是不是完全由数字组成,isalpha()判断字符串是不是完全由字符组成

    s1 = '12345'
    s2 = 'abc你好壹仟'
    print(s1.isdigit()) #True
    print(s2.isalpha()) #True

    9、字符长度 len

    s2 = 'abc你好壹仟'
    print(len(s2)) #7

    二、元组 tuple    -->不可变的序列,用小括号表示(元素1,元素2,元素3),注意(1)这不是一个元组,如果想表示成元组,必须在1后面加个逗号 即:(1,)

    元组和列表内的方法一模一样,唯一的区别是元组内的元素不能修改列表内的元素是可以修改的

    day=('星期一','星期二','星期三','星期四')
    print(day[0])
    print(day[:2])
    for i in day:
        print(i)
    
    day[2]='星期日'
    print(day[:]) #TypeError: 'tuple' object does not support item assignment

    从上面的结果可以看出来,元组可以切片也可以循环输出,但是不能修改

    |--列表转换元组 tuple(list)

    list1 = [1,2,3,4]
    tup = tuple(list1)
    print(type(tup)) #<class 'tuple'>
    print(tup) #(1, 2, 3, 4)
    tup.append(999)
    print(tup) #AttributeError: 'tuple' object has no attribute 'append'

    总结:元组内的元素不能修改,不能增加,不能删除  -->即:元组内的元素是固定不变的

    |-- 元组转换成列表 list(tup)

    tup = (1,2,3,4)
    list1 = list(tup)
    print(list1) #[1, 2, 3, 4]

    三、字典 (dict)

    字典用{}表示,列表用[]表示,元组用()表示

    # 取字典内的某一个值
    d = {
     'alex':'alex3714',
     'wusir':'666',
      'alex10000':'222222'
     } #字典的存储方式是:key:value
    print(d['alex']) #取alex的值,直接用 字典名['key']

    不管字典有几万条数据,只要知道key,就可以直接取值,效率非常高

    #利用字典编写登录

    username = input('username:')
    passwd = input('passwd:')
    if username in d and d[username] == passwd:
        print('%s登录成功'%username)
    else:
        print('登录失败')

    1、增加

    2、删除  -->pop()函数 / del 字典名[key]

    3、修改  -->字典名[key]=新值

    4、查找   -->字典名[key]

    #
    d['张三']='8888'
    print(d)
    #
    d['张三']='99999'  # 如果没有就新值,有的话就修改
    print(d)
    #
    d.pop('alex')
    print(d)
    del d['wusir']
    print(d)
    #
    print(d['alex']) #alex3714

    注意:字典的key是有要求的: (value是没有要求的,任何内容都可以)

    • key不能重复
    • key必须是可hash的 (可以通过一个哈希算法计算出一个变量的哈希值)
    • 不能做字典的key (list,dict,set)   -->set是集合
    d = {'alex':73,123:['a','b'],(1,2,3):{'k':'v'}}
    d['alex'] = 125
    print(d)
    
    #字符串,数字,浮点型,元组都可以做key

    5、字典的循环

    d = {'alex':84,123:['a','b'],(1,2,3):{'k':'v'}}
    
    for i in d:
        print(i,d[i])
    
    执行结果:
    # alex 84
    # 123 ['a', 'b']
    # (1, 2, 3) {'k': 'v'}

    6、也可以用  get(key) 来获取value

    qq={'k1':'v1'}
    print(qq.get('k1')) #v1
    print(qq.get('k2')) #None
    print('k1' in qq) #True
    print('k2' in qq) #False

    四、集合   -->集合中所有的元素约束都和字典的key相同

    1、求多个集合之间的关系,并集、交集、差集(补集)

    linux = {'老王','老刘','小汤','小周'}
    python = {'老王','老刘','小汤','老李'}
    # 取交集 -->即学linux又学python
    print(linux&python)
    # 取并集 -->去重
    print(linux|python)
    # 取差集
    print(linux-python)
    
    # {'老刘', '小汤', '老王'}
    # {'小周', '小汤', '老刘', '老王', '老李'}
    # {'小周'}

    2、去除重复的内容

    lst=[2,3,3,3,66,1,9,2,4,1]
    s = set(lst)
    print(s) #{1, 2, 3, 66, 4, 9} 集合的去重是无序的

    注意:在不改变原顺序的情况下,取出一个列表当中重复的项 --不能用set集合来完成

    ------------------------

    # 基础数据类型分类记忆一:

    • 数字类型:bool int floot
    • 序列类型:str tuple list  --索引 切片
    • 散列类型:dict set   --无序的并且元素、key必须可hash

    # 基础数据类型分类记忆二:

    • 可变数据类型:list dict set
    • 不可变数据类型:bool int float str tuple
  • 相关阅读:
    mysql_pw 指令 数据库创建过程
    node.js+mysql环境搭建
    MySQL 学习
    express 应用创建及app.js详解
    .NET MD5加密解密代码
    Axure 部件的交互样式
    easyUI -messager -消息框
    Window01
    linkbutton
    easyUi-datagrid 真分页 + 工具栏添加控件
  • 原文地址:https://www.cnblogs.com/frankruby/p/16112511.html
Copyright © 2020-2023  润新知