• 干货|Python基础入门 课程笔记(三)


    640?wx_fmt=png

    目录

    • 列表

    • 元组

    • 字典

    • 三元表达式

    一、列表

    前面学习的字符串可以用来存储一串信息,那么想一想,如果现在有很多人,总不能每个人都起一个变量名把?那岂不得疯~

    640?wx_fmt=png

    咱们可以使用列表。

     

    (1)列表得格式和输出

    name = ['杜子腾','史珍香','付书宝','刘币替']'杜子腾','史珍香','付书宝','刘币替']

    输出列表:

    print(name)print(name[0])print(name[1])print(name[2])
    
    print(name[0])
    
    print(name[1])
    
    print(name[2])

    运行结果:

    640?wx_fmt=png

     

    (2)列表得循环遍历

    使用 for 循环

    当列表中存储得数据比较多得时候,为了更有效率的输出列表的每个数据,可以使用循环来完成,

    name = ['杜子腾','史珍香','付书宝']for i in name:print(i)'史珍香','付书宝']
    
    for i in name:
    
    print(i)

    运行结果:

    640?wx_fmt=png

    使用 while 循环

    当然也可以使用 while 循环,但是要设置好 while 循环的条件哟,小心不要进入死循环

    name = ['杜子腾','史珍香','付书宝']length = len(name)i = 0while i<length:print(name[i])i+=1'史珍香','付书宝']
    
    length = len(name)
    
    i = 0
    
    while i<length:
    
    print(name[i])
    
    i+=1

    运行结果:

    640?wx_fmt=png

     

    (3)列表得常见操作

    列表中存放的数据是可以进行修改的,比如"增"、"删"、"改"、"查",后续咱们还会讲可变对象和不可变对象。列表就是可变对象,请看后面得课程哟

    增(append, extend, insert)

    append

    通过 append 可以向列表中添加数据

    namelist = ['杜子腾','史珍香','付书宝']namelist.append('李铁柱')print(namelist)'史珍香','付书宝']
    
    namelist.append('李铁柱')
    
    print(namelist)

    运行结果:

    640?wx_fmt=png

    extend

    通过 extend 可以将另一个集合中的元素逐一添加到列表中

    namelist = ['杜子腾','史珍香','付书宝']name_list = ['李铁柱','李树']namelist.extend(name_list)print(namelist)'史珍香','付书宝']
    
    name_list = ['李铁柱','李树']
    
    namelist.extend(name_list)
    
    print(namelist)

    运行结果:

    640?wx_fmt=png

    insert

    insert(index, object) 在指定位置 index 前插入元素 object

    namelist = ['杜子腾','史珍香','付书宝']namelist.insert(1,'付舒宝')print(namelist)'史珍香','付书宝']
    
    namelist.insert(1,'付舒宝')
    
    print(namelist)

    运行结果:

    640?wx_fmt=png

    删(del, pop, remove)

    del

    根据下标进行删除

    movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']del movieName[0]print(movieName)'骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
    
    del movieName[0]
    
    print(movieName)

    运行结果:

    640?wx_fmt=png

    pop

    删除最后一个元素

    movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']movieName.pop()print(movieName)'骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
    
    movieName.pop()
    
    print(movieName)

    运行结果:

    640?wx_fmt=png

    remove

    根据元素的值进行删除

    movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']movieName.remove('骇客帝国')print(movieName)'骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
    
    movieName.remove('骇客帝国')
    
    print(movieName)

    运行结果:

    640?wx_fmt=png

    改(通过下标)

    修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改

    movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']movieName[0] = '三傻大闹宝莱坞'print(movieName)'骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
    
    movieName[0] = '三傻大闹宝莱坞'
    
    print(movieName)

    运行结果:

    640?wx_fmt=png

    查(in, not in)

    in

    如果存在那么结果为true,否则为false

    #待查找的列表nameList = ['xiaoWang','xiaoZhang','xiaoHua']#获取用户要查找的名字findName = input('请输入要查找的姓名:')#查找是否存在if findName in nameList:print('在字典中找到了相同的名字')else:print('没有找到')
    
    nameList = ['xiaoWang','xiaoZhang','xiaoHua']
    
    #获取用户要查找的名字
    
    findName = input('请输入要查找的姓名:')
    
    #查找是否存在
    
    if findName in nameList:
    
    print('在字典中找到了相同的名字')
    
    else:
    
    print('没有找到')

    运行结果:

    640?wx_fmt=png

    not in

    如果不存在那么结果为 true,否则false

    #待查找的列表nameList = ['xiaoWang','xiaoZhang','xiaoHua']#获取用户要查找的名字findName = input('请输入要查找的姓名:')#查找是否存在if findName not in nameList: print('没有找到')elif findName in nameList: print('找到了')
    
    nameList = ['xiaoWang','xiaoZhang','xiaoHua']
    
    #获取用户要查找的名字
    
    findName = input('请输入要查找的姓名:')
    
    #查找是否存在
    
    if findName not in nameList:
    
     print('没有找到')
    
    elif findName in nameList:
    
     print('找到了')

    运行结果:

    640?wx_fmt=png

    not in : 翻译成大白话就是,如果 ....什么什么.... 不在 啥玩意 里面,那么就执行缩进段内的代码。

    哈哈,这样一翻译,是不是很通俗易懂了。

     

    二、元组

    Python 的元组与列表类似,不同之处在于元组的元素不能修改元组使用小括号,列表使用方括号。

    numTuple = (1,2,3,4)print(numTuple) # 结果为:(1,2,3,4)
    print(numTuple) # 结果为:(1,2,3,4)

     

    (1)访问元组

    访问元组中的数据,也可以通过下标来访问元组

    numTuple = (1,2,3,4)print(numTuple[0]) # 结果为: 1
    print(numTuple[0]) # 结果为: 1

     

    (2)修改元组

    numTuple = (1,2,3,4)numTuple[0] = 51,2,3,4)
    
    numTuple[0] = 5
    抛出异常:---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-54-7978431cbe37> in <module> 1 numTuple = (1,2,3,4)----> 2 numTuple[0] = 5TypeError: 'tuple' object does not support item assignment
    ---------------------------------------------------------------------------
    
    TypeError Traceback (most recent call last)
    
    <ipython-input-54-7978431cbe37> in <module>
    
    1 numTuple = (1,2,3,4)
    
    ----> 2 numTuple[0] = 5
    
    TypeError: 'tuple' object does not support item assignment

    元组中的不可变对象是不能被修改的哟.如果里面是列表等可变数据类型的话,可以进行修改.

     

    三、字典

    在这里咱们仔细想一下哟~,假设有个列表里面存储的是学生的名字。当学生的名字错误,需要修改的时候,可以通过 列表名[索引] 的方式来进行修改,但是如果列表的顺序发生了变化,此时呢就需要修改下标,才能完成名字的修改。

    提出疑问:有没有什么方法,既能存储多个数据,还能在访问元素得时候很方便就能够定位到元素呢?

    答案:当然是通过接下来要讲得 字典 啦~向下看咯

    生活中的字典:

    640?wx_fmt=png

    软件开发中的字典:

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    
    说明字典和列表一样,也能够存储多个数据。

    列表中找某个元素时,是根据下标进行的。

    字典中找某个元素时,是根据 '名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'age'、'gender')

    字典的每个元素由2部分组成,键:值。例如 'name':'AKing' ,'name'为键,'AKing'为值

     

    (1)根据键访问值

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}print(info['name'])print(info['age'])'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    print(info['name'])
    
    print(info['age'])

    运行结果:

    640?wx_fmt=png

    访问的 键名 不存在则抛出异常。

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}print(info['height']) # 访问 info 字典中键名为"height"的值,但是...值呢?他没有值阿。抛出异常:--------------------------------------------Traceback (most recent call last):File "<stdin>", line 1, in <module>KeyError: 'height''AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    print(info['height']) # 访问 info 字典中键名为"height"的值,但是...值呢?他没有值阿。
    
    抛出异常:
    
    --------------------------------------------
    
    Traceback (most recent call last):
    
    File "<stdin>", line 1, in <module>
    
    KeyError: 'height'

     

    (2)修改元素

    字典的每个元素中的数据是可以修改的,只要通过 key 找到,即可修改

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}new_address = '上海'info['address'] = new_address print('修改之后的 address 为: %s' % info['address'])'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    new_address = '上海'
    
    info['address'] = new_address 
    
    print('修改之后的 address 为: %s' % info['address'])

    运行结果:

    640?wx_fmt=png

     

    (3)添加元素

    如果在使用 字典名['键'] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}# print('id为:%d'%info['id']) # 程序会中断运行,因为访问了不存在的键id = 6948info['id'] = idprint('添加之后的id为:%d' % info['id'])'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    # print('id为:%d'%info['id']) # 程序会中断运行,因为访问了不存在的键
    
    id = 6948
    
    info['id'] = id
    
    print('添加之后的id为:%d' % info['id'])

    运行结果:

    640?wx_fmt=png

     

    (4)删除元素

    对字典进行删除操作,有一下几种:

    del

    clear()

    del 删除指定得元素

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}print('删除前,%s' % info['name'])del info['name'] # 删除之后,值也跟着删除print('删除后,%s' % info['name'])'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    print('删除前,%s' % info['name'])
    
    del info['name'] # 删除之后,值也跟着删除
    
    print('删除后,%s' % info['name'])

    运行结果:

    640?wx_fmt=png

    del 删除整个字典

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}del info # del 字典名,这样的话字典的数据就全被删除了print(info)'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    del info # del 字典名,这样的话字典的数据就全被删除了
    
    print(info)

    运行结果:

    640?wx_fmt=png

    clear 清空整个字典

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}print('清空前,%s' % info)info.clear() # 字典名.clear() 清空字典中所有键值对数据print('清空后,%s' % info)'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    print('清空前,%s' % info)
    
    info.clear() # 字典名.clear() 清空字典中所有键值对数据
    
    print('清空后,%s' % info)

    运行结果:

    640?wx_fmt=png

     

    (5)字典的常用方法

    len()

    len : 代表长度 length 的意思

    测量字典中,键值对的个数

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}len(info) # 结果为 4'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    len(info) # 结果为 4

    keys()

    keys :翻译为 键。

    返回一个包含字典所有 key 的列表

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}info.keys() # 结果返回列表,存储的都是键名'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    info.keys() # 结果返回列表,存储的都是键名

    values()

    values :意思为复数的 value ,表示为多个值

    返回一个包含字典所有 value 的列表

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}info.values() # 结果返回列表,存储的都是 values 值'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    info.values() # 结果返回列表,存储的都是 values

    items()

    items :表示为所有物品,是 item 的复数形式

    返回一个包含所有(键,值)元祖的列表

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}info.items()'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    info.items()

    运行结果:

    640?wx_fmt=png

     

    (6)字典的遍历

    通过 for ... in ... 我们可以遍历字符串、列表、元组、字典等

    遍历字典的 key 键

    可以通过 for i in 字典名.keys(): 获取 键名

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}for i in info.keys():print(i)'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    for i in info.keys():
    
    print(i)

    运行结果:

    640?wx_fmt=png

    遍历字典的 values 值

    可以通过 for i in 字典名.values(): 获取 值

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}for i in info.values():print(i)'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    for i in info.values():
    
    print(i)

    运行结果:

    640?wx_fmt=png

    遍历字典的 items 键值对

    可以通过 for item in 字典名.items(): 获取 键名和值

    info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}for item in info.items():print(item)'AKing', 'age':25, 'gender':'man', 'address':'北京'}
    
    for item in info.items():
    
    print(item)

    运行结果:

    640?wx_fmt=png

     

    四、三元表达式

    为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号)

    # 举个栗子a = 1b = 2h = ""h = a-b if a>b else a+bprint(h)
    
    a = 1
    
    b = 2
    
    h = ""
    
    h = a-b if a>b else a+b
    
    print(h)

    实际操作:

    640?wx_fmt=png

    执行过程:

    640?wx_fmt=png

  • 相关阅读:
    Java多线程系列--“JUC锁”03之 公平锁(一)
    Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock
    Java多线程系列--“JUC锁”01之 框架
    BIO,NIO,AIO
    Java多线程系列--“JUC线程池”06之 Callable和Future
    Java多线程系列--“JUC线程池”05之 线程池原理(四)
    Java多线程系列--“JUC线程池”04之 线程池原理(三)
    Java多线程系列--“JUC线程池”03之 线程池原理(二)
    Java多线程系列--“JUC线程池”02之 线程池原理(一)
    Java多线程系列--“JUC线程池”01之 线程池架构
  • 原文地址:https://www.cnblogs.com/panchuangai/p/12568098.html
Copyright © 2020-2023  润新知