• 第二章节练习


    第二章节练习

    列表练习题

    1.创建一个空列表,命名为names,往里面添加old_driver,rain,jack,shanshan,peiqi,black_girl元素

    >>> names
    ['old_drive', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']
    >>>

    2.往names列表里black_girl前面插入一个alex

    >>> names.insert(5,"alex")
    >>> names
    ['old_drive', 'rain', 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl']
    >>>

    3.把shanshan的名字改成中文,珊珊

     如何修改?忘记了

    4.往names列表里rain的后面插入一个子列表,[oldboy,oldgirl]

    >>> names.insert(2,["oldboy","oldgirl"])
    >>> names
    ['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl']
    >>>

    5.返回peiqi的索引值

    >>> names
    ['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex'
    , 'black_girl']
    >>> names.index("peiqi")
    5
    >>>

    6.创建新列表[1,2,3,4,2,5,6,2],合并入names列表

    extend  列表的合并

    ['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl']
    >>> age_list=[1,2,3,4,2,4,6,3,2,7,2]
    >>> names.extend(age_list)
    >>> names
    ['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl', 1, 2
    , 3, 4, 2, 4, 6, 3, 2, 7, 2]
    >>>

    7.取出names列表中索引4-7的元素

    >>> names
    ['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl']
    >>> names[4:]
    ['shanshan', 'peiqi', 'alex', 'black_girl']
    >>>

    8.取出names列表中索引2-10的元素,步长为2

    >>> names
    ['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl', 2, 3, 4, 5, 6]
    >>> names[2:11:2]
    [['oldboy', 'oldgirl'], 'shanshan', 'alex', 2, 4]
    >>>

    9.取出names列表中最后3个元素

    >>> names[-3:]
    [4, 5, 6]
    >>>

    10.循环names列表,打印每个元素的索引值,和元素

    names=['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl', 2, 3, 4, 5, 6]
    count=0
    for i in names:
        print(count , i)
        count +=1

    11.循环names列表,打印每个元素的索引值,和元素,当索引值为偶数是,把对应的元素改成-1

    names=['old_drive', 'rain', ['oldboy', 'oldgirl'], 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl', 2, 3, 4, 5, 6]
    count=0
    for i in names:
        print(count , i)
        count +=1
        if count %2==0:
            names[count]="-1"

    12.names里有3个2,请返回第2个2的索引值,不要人肉数,要动态找(提示,找到第一个2的位置,在此基础上再找到第二个)

     返回索引值  index

     字典练习题

    写代码,有如下字典,按照要求实现每一个功能。dic = {'k1':'v1','k2':'v2','k3':'v3'}

    1.请循环遍历出所有的key

    dic = {'k1':'v1','k2':'v2','k3':'v3'}
    for k in dic:
    print(k)

    2.请循环遍历出所有的value

    dic = {'k1':'v1','k2':'v2','k3':'v3'}
    for k in dic:
        print(dic[k])

    3.请循环遍历初所有的KEY和VALUE

    dic = {'k1':'v1','k2':'v2','k3':'v3'}
    for k in dic:
        print(k,dic[k])

    4.请在字典中添加一个键值对,'k4':'v4',输出添加后的字典

    dic = {'k1':'v1','k2':'v2','k3':'v3'}
    dic["k4"]="v4"
    print(dic)

    5.请删除字典中键值对'k1','v1',并输出删除后的字典

    dic = {'k1':'v1','k2':'v2','k3':'v3'}
    dic.pop("k1")
    print(dic)

    6.请删除字典中键'k5'对应的键值对,如果字典中不存在键'k5',则不报错,并且让其返回none

    dic = {'k1':'v1','k2':'v2','k3':'v3'}
    dic.pop("k5")
    if 'k5 'not in dic:
        print("none")

    7.请获取字典中'k2'对应的值

    dic = {'k1':'v1','k2':'v2','k3':'v3'}
    value=dic.get("k2")
    print(value)

    8.请获取字典中'k6'对应的值,如果'k6'不存在,则不报错,并且让其返回Nnoe

    dic = {'k1':'v1','k2':'v2','k3':'v3'}
    value=dic.get("k6")
    if "k6"not in dic:
        print("none")
    else:
        print(value)

    9.现有dic2 = {'k1':'v111','a':'b'}请通过一行操作使dic2 = {'k1':'v1','k2':'v2','k3':'v3','a':'b'}

    dic2 = {'k1':'v111','a':'b'}
    dic= {'k1':'v1','k2':'v2','k3':'v3','a':'b'}
    dic2.update(dic)
    print(dic2)

    10.组合嵌套题,写代码,有如下列表,按照要求实现每一个功能 lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]

    10.1.将列表lis 中的'tt'变成大写(用两种方式)

    upper() 将字符串中的小写字母转为大写字母

    用法:str.upper()

    lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
    #将列表lis 中的'tt'变成大写(用两种方式)
    #upper()
    list=lis[0][1][2].get('k1')[0].upper()
    print(list)

    swapcase()

    将字符串中的小写字母转为大写字母

    lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
    #将列表lis 中的'tt'变成大写(用两种方式)
    #upper()
    list=lis[0][1][2].get('k1')[0].swapcase()
    print(list)

    10.2.将列表中的数字3 变成字符串'100'(用两种方式)

    lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
    #将列表中的数字3 变成字符串'100'(用两种方式)
    #upper()
    list=lis[0][1][2].get('k1')[1]='100'
    print(lis)
    lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
    #将列表中的数字3 变成字符串'100'(用两种方式)
    #upper()
    list={'k1':['tt',100,'1']}
    lis[0][1][2].update(list)
    print(lis)

    10.3 将列表中的字符串'1'变成数字101(用两种方式)

    lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
    #将列表中的字符串'1'变成数字101(用两种方式)
    #upper()
    lis[0][1][2].get('k1')[2]=100
    print(lis)
    lis = [['k',['qwe',20,{'k1':['tt',3,'1']},89],'ab']]
    #将列表中的字符串'1'变成数字101(用两种方式)
    #upper()
    dic={'k1':['tt',101,'1']}
    lis[0][1][2].update(dic)
    print(lis)

    11 按照要求实现以下功能:

    现有一个列表li = [1,2,3,'a','b',4,'c'],有一个字典(此字典是动态生成的,你并不知道他里卖弄有多少键值对,所以

    dic = {}模拟此字典);现在需要完成这样的操作:如果该字典没有'k1'这个键,那就创建'k1'键和其对应的值(该键对应的值设置为空列表)

    并将列表li 中的 索引为奇数的对应元素,添加到'k1'这个键对应的空列表中。如果该字典有'k1'这个键,且'k1'对应的value

    是列表类型,那就将li中的索引为奇数的对应元素,添加到'k1'这个键对应的键中

    第二章总结-练习

    1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex', 'eric', 'rain']

    li = ['alex','eric','rain']
    li_1='_'.join(li)
    print(li_1)

    2、查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。

    li = ["alec", " aric", "Alex", "Tony", "rain"]

    tu = ("alec", " aric", "Alex", "Tony", "rain")

    dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}

    知识点:

    startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False

    endsWith() 方法用于测试字符串是否以指定的后缀结束

    li_tu=list(tu)
    li_dic=list(dic.values())
    new_list=li+li_tu+li_dic
    for i  in  new_list:
        ret=i.strip()
        if (ret.startswith('a') or ret.startswith('A') or ret.endswith('c')):
            print(ret)

    3、写代码,有如下列表,按照要求实现每一个功能

    li=['alex', 'eric', 'rain']

    a.计算列表长度并输出

    li = ['alex','eric','rain']
    print(len(li))

    b.列表中追加元素“seven”,并输出添加后的列表

    li = ['alex','eric','rain']
    li.append('sever')
    print(li)

    c.请在列表的第1个位置插入元素“Tony”,并输出添加后的列表

    li = ['alex','eric','rain']
    li.insert(0,'Tony')
    print(li)

    d.请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表

    li = ['alex','eric','rain']
    li[1]='Kelly'
    print(li)

    e.请删除列表中的元素“eric”,并输出修改后的列表

    li = ['alex','eric','rain']
    del li[1]
    print(li)

    f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表

    li = ['alex','eric','rain']
    print(li,li.pop(1) )

    g.请删除列表中的第3个元素,并输出删除元素后的列表

    li = ['alex','eric','rain']
    del li[2]
    print(li)

    h.请删除列表中的第2至4个元素,并输出删除元素后的列表

    li= ['alex','eric','rain','Tony']
    del li[1:]
    print(li)

    i.请将列表所有的元素反转,并输出反转后的列表

    li= ['alex','eric','rain','Tony']
    del li[1:]
    print(li)

    j.请使用for、len、range输出列表的索引

    li= ['alex','eric','rain','Tony']
    for i in range(len(li)):
        print(i)

    k.请使用enumrate输出列表元素和序号(序号从100开始)

    enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

    li= ['alex','eric','rain','Tony']
    print(list(enumerate(li,start=100)))

    l.请使用for循环输出列表的所有元素

    li= ['alex','eric','rain','Tony']
    for i in li:
        print(i)

    4、写代码,有如下列表,请按照功能要求实现每一个功能

    li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]

    • 请根据索引输出“Kelly”
    • 请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
    li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
    print(li[2][1][1])
    li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
    li[2][2]='ALL'
    print(li)

    5、写代码,有如下元组,请按照功能要求实现每一个功能

    tu=('alex', 'eric', 'rain')

    • 计算元组长度并输出
    • 获取元组的第2个元素,并输出
    • 获取元组的第1-2个元素,并输出
    • 请使用for输出元组的元素
    • 请使用for、len、range输出元组的索引
    • 请使用enumrate输出元祖元素和序号(序号从10开始)

    6、有如下变量,请实现要求的功能

    tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])

    • 讲述元祖的特性
    • 请问tu变量中的第一个元素“alex”是否可被修改?
    • 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
    • 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”

     特性: 1.可存放多个值;   2.不可变;  3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序
    b 不可被修改。

    c    k2对应的值是列表,可以被修改。

    d   k3对应的是元组,不能被修改。

    7、字典

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}

    • 请循环输出所有的key
    • 请循环输出所有的value
    • 请循环输出所有的key和value
    • 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
    • 请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
    • 请在k3对应的值中追加一个元素44,输出修改后的字典
    • 请在k3对应的值的第1个位置插入个元素18,输出修改后的字典

    a.

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for k in dic:
        print(k)

    b.

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for k in dic.values():
        print(k)

    c.

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for k,v in dic:
        print(k,v)

    d.

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    dic['k4']='v4'
    print(dic)

    e.

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    dic['k1']='alex'
    print(dic)

    f.

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    dic['k3'].append(44)
    print(dic)

    g.

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    dic['k3'].insert(0,44)
    print(dic)

    8.转换

    • 将字符串s = "alex"转换成列表
    • 将字符串s = "alex"转换成元祖
    • 将列表li = ["alex", "seven"]转换成元组
    • 将元祖tu = ('Alex', "seven")转换成列表
    • 将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
    • 8888

    a.

    s='alex'
    s=list(s)
    print(s)

    b.

    s = "alex"
    s=tuple(s)
    print(s)

    c.

    li = ["alex", "seven"]
    li=tuple(li)
    print(li)

    d.

    tu = ('Alex', "seven")
    tu=list(tu)
    print(tu)

    e.

    li = ["alex", "seven"]
    dic={}
    for k,v in enumerate(li,10):
        dic[k]=v
        print(dic)

    enumerate() 方法

    enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

    >>>seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) # 下标从 1 开始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

    9、元素分类

    有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。

    即:{'k1':大于66的所有值, 'k2':小于66的所有值}

    10、输出商品列表,用户输入序号,显示用户选中的商品

    商品li = ["手机", "电脑", '鼠标垫', '游艇']

    • 允许用户添加商品
    • 用户输入序号显示内容

    11、用户交互显示类似省市县N级联动的选择

    • 允许用户增加内容
    • 允许用户选择查看某一个级别内容

    12、列举布尔值是False的所有值

    13、有两个列表

      l1 = [11,22,33]

      l2 = [22,33,44]

    • 获取内容相同的元素列表
    • 获取l1中有,l2中没有的元素列表
    • 获取l2中有,l1中没有的元素列表
    • 获取l1和l2中内容都不同的元素

    14、利用For循环和range输出

    • For循环从大到小输出1 - 100
    • For循环从小到到输出100 - 1
    • While循环从大到小输出1 - 100
    • While循环从小到到输出100 - 1

    15、利用for循环和range输出9 * 9乘法表

    16、求100以内的素数和。(编程题)

       解题思路:

    1. 求出100以内除了1的所有整数(1不是素数)。
    2. 用每一个整数分别除以比他小的整数,判断是否可以整除。
    3. 定义一个空列表,用以储存素数。
    4. 设定一个判断条件。

    17、将[1,3,2,7,6,23,41,24,33,85,56]从小到大排序(冒泡法)(编程)

    18、分页显示内容

    a.通过for循环创建301条数据,数据类型不限,如:
    alex-­‐1alex1@live.compwd1
    alex-­‐2alex2@live.compwd2
    alex-­‐3alex3@live.compwd3
    ....

    b.提示用户请输入要查看的页码,当用户输入指定页码,则显示指定数据

    注意:
    -­‐每页显示10条数据
    -­‐用户输入页码是非十进制数字,则提示输入内容格式错误

    19、有1、2、3、4、5、6、7、8、8个数字,能组成多少个互不相同且无重复数字的3位数?

    20、有一下列表,
    nums=[2,7,11,15,1,8,7]
    请找到列表中任意两个元素相加能够等于9的元素集合,如:[(0,1),(4,5)]

    21、用Python开发程序自动计算方案:

    公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?

    补加练习题:

    分别用append、extend方法,给一个序列增加一个元素

    x.append([1,2,3])和x.extend([1,2,3])的区别

     x.append('abc')和x.extend('abc')的区别

     sort()和sorted()什么区别

     m=[4,5,6,73,4,4,4,4,2],删除所有的4

  • 相关阅读:
    清除浮动的原理剖析
    修正IE6不支持position:fixed的bug(转)
    Callbacks vs Events
    垂直属性
    jQuery的事件模型
    Dean-Edward的事件系统实现
    简单的导航栏实现
    弹窗层效果的实现(非jQuery实现)
    rmdir
    mkdir
  • 原文地址:https://www.cnblogs.com/hantongxue/p/11295231.html
Copyright © 2020-2023  润新知