Practise

ist_demo = [1,2,3]
list_two = ist_demo
ist_demo[0] = 99
print(list_two)

请添加图片描述

list_demo = 1, 2, 1, 3 , 4, - 5, 3
de = set(list_demo)
print(de)
print(type(de))
print(type(list_demo))

默认为元组

dict_demo = {'a':1, 'b':2, 'a':3}
print(dict_demo['a'])

结果为 3

列表、元组和字典的区别

  1. 外形:列表是中括号括起来的数据;元组是圆括号括起来的数据;字典是花括号括起来的数据。
  2. 存储结构:列表可以存储多个不同类型的数据,以逗号分隔;元组同样能存储多个不同类型的数据,以逗号分隔;字典能存储多个键值对,以逗号分隔,键是唯一的,值是任何类型的。
  3. 访问方式:列表可以通过下标索引访问元素,索引从0开始;元组可以通过下标索引访问值,索引从0开始;字典通过键来访问值。
  4. 是否可变类型:列表是可变类型,元组是不可变类型,字典是可变类型。

编程题

  1. 编写一个函数,用于判断用户输入的字符串是否由小写字母和数字构成。

    def message():
        myStr = input('请输入密码,只能是字母和数字:')
        if myStr.isalnum():
            print("符合要求")
        else:
            print('不符合要求')
    
    message()
    
  2. 请根据下述需求,编写一个程序。

            用户输入一个字符串,将下标为偶数的字符提出来合并成一个新的字符串A,再将下标为奇数的字符提出来合并成一个新的字符串B,再将字符串A和B连接起来并输出。

    oushu = ''
    jishu = ''
    
    lise_demo = list(input('输入任意字符:'))
    for str_0 in lise_demo[::2]:
        oushu += str_0
    for str_1 in lise_demo[1::2]:
        jishu += str_1
    print(oushu+jishu)
    
  3. 请编写一个程序,用于统计字符串中每个字母的出现次数(字母忽略大小写,a和A看做是同一个字母),统计出的结果,请按照[‘a’:3,’b’:2]的格式输出。

    arr = []
    def count():
        my_str = input('请输入只包含字母的字符串:')
        if my_str.isalpha():
            newstr = my_str.lower()
            for string in newstr:
                arr.append(string)
        
            a = {}
            for i in arr:
                if arr.count(i) >= 1:
                    a[i] = arr.count(i)
            print(a)
    
        else:
            print('输入内容有误!!!')
    
    count()
    
  4. 请根据下列需求,编写一个程序。

            用户输入一个字符串,请将字符串中的所有字母全部向后移动一位,最后一个字母放到字符串的开头,最后将新的字符串输出。

    arr = []
    result = ''
    
    my_str = input("请输入字符串:")
    for string in my_str:
        arr.append(string)
    last = arr[-1]
    arr.pop()
    arr.insert(0,last)
    for new in arr:
        result += new
    print(result)
    

请添加图片描述

  1. 假设有个列表存储了奇数个数字,请编写程序,排序输出中间位置的数字。

    arr = []
    length = int(input("请要输入数字的总个数(必须为奇数):"))
    i = 0
    while i < length:
       num =  int(input("输入第%d个数字:"%(i+1)))
       arr.append(num)
       i+=1
    arr.sort()
    index = int(length-1 >> 1)
    print(arr[index])
    
  2. 已知info=[1,2,3,4,5],请通过两种编程方法,将列表变成info=[5,4,3,2,1]。

     print('5 '*20)
     print('第一种')
     arr = [1,2,3,4,5]
     arr.reverse()
     print(arr)
     print('第二种')
     arr.sort(reverse=True)
     print(arr)
    
  3. 请编写一个函数,满足下列需求:

            用户输入n,然后输入n个整数到列表中,列表中的n个整数需要使用冒泡进行排序,并将排序后的结果输出。

    arr = []
    length = int(input("请输入数字的总个数:"))
    i = 0
    while i < length:
       num =  int(input("输入第%d个数字:"%(i+1)))
       arr.append(num)
       i+=1
    print("排序前:%s"%arr)
    # 冒泡排序
    for i in range(length):
        flag = 0
        for j in range(i+1,length):
            if arr[j-1] > arr[j]:
                arr[j-1],arr[j] = arr[j],arr[j-1]
                flag = 1
        if not flag:
            break
    
    print("排序后:%s"%arr)
    
  4. 请编写一个程序,实现删除列表重复元素的功能。

    arr = []
    length = int(input("请输入列表的总个数:"))
    i = 0
    while i < length:
       element =  input("输入第%d个元素:"%(i+1))
       arr.append(element)
       i+=1
    # 列表转为集合
    newList = set(arr)
    print(newList)
    
  5. 假设有两个3 x 3的矩阵,请编写一个程序,计算这两个矩阵的和并输出。

    def add(a, b):
        # 下面两行保证输入的a和b是维数相同的矩阵,根据实际情况不要也可以
        assert (len(a) == len(b))
        assert (all([len(a[i]) == len(b[i]) == len(a[0]) for i in range(len(a))]))
        i, j = len(a), len(a[0])
        c = [[0] * j] * i
        for m in range(i):
            for n in range(j):
                c[m][n] = a[m][n] + b[m][n]
        return c
    a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    b = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
    c = add(a, b)
    print(c)
    
  6. 请编写一个程序,使用字典存储学生信息,学生信息包括学号和姓名,请根据学生学号从小到大输出学生的信息。

    dic = {}
    i=0
    while i<3:
         number = input("输入学生学号:")
         name = input("输入学生姓名:")
         dic.__setitem__(number,name)
         i+=1
    print("排序前:%s"%dic)
    def dict2list(dic:dict):
        ''' 将字典转化为列表 '''
        keys = dic.keys()
        vals = dic.values()
        lst = [(key, val) for key, val in zip(keys, vals)]
        return lst
    new = sorted(dict2list(dic), key=lambda x:x[0], reverse=False)
    print("排序后:%s"%new)
    
  7. 已知一个字典包含若干员工信息(姓名和性别),请编写一个函数,删除性别为男的员工信息。

    def delMale(dict):
        keys = []
        values = []
        for (key,value) in dict.items():
            keys.append(key)
            values.append(value)
        for value in values:
            if value == 0:
                index = values.index(value)
                arrKey = keys[index]
                del dict[arrKey]
                values[index] = 3
                keys[index] = "占位"
    dic = {"小明":0, "小红":1,"小兰":1,"小白":0}
    print("删除前:%s"%dic)
    delMale(dic)
    print("删除后:%s"%dic)
    
  8. 已知一个列表存储了多个整数,请编写函数,删除列表中的素数。

    arr = [12,3,37,7,91,67,27,45,6]
    def delPrime(arr):
        for element in arr:
            # 质数大于 1
            if element > 1:
                # 查看因子
                for i in range(2, element):
                    if (element % i) == 0:
                        break
                else:
                    arr.remove(element)
    delPrime(arr)
    print(arr)
    

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值