zoukankan      html  css  js  c++  java
  • python 练习题

    1.【编码实现】有如下数组,需要将每个字符串中排列在任意 x 前⾯的所有 y 替换为 0 ,需要计算出
    每个字符串需要被替换的 y 的个数,请使⽤⼀⻔您熟悉的编程语⾔实现。
    ['xxyyxyyyyyxxx', 'yxxxx', 'xyyyxxyx', 'xxxx', 'xxxyyy']
    import re
    list1 = ['xxyyxyyyyyxxx', 'yxxxx', 'xyyyxxyx', 'xxxx', 'xxxyyy','yxxxyyy']
    list2 = []
    sum=0
    for str1 in list1:
        
        while True:
            searchObj = re.search('(y+)x',str1)
            if searchObj:
                index=searchObj.span()
                sum = sum + index[1]-index[0]-1
                str1=str1.replace(str1[index[0]:index[1]-1],(index[1]-1-index[0])*'0',1)
            else:
                list2.append(str1)
                break
    print('sum(y):',sum)
    print('replace list:',list2)

    打印结果:

     2.【编码实现】请使⽤⼀⻔您熟悉的编程语⾔实现如下数据结构转换

    list = [
     { id: 1, type: 'human', name: '⿅晗' },
     { id: 2, type: 'robot', name: '伊娃' },
     { id: 3, type: 'animal', name: '⾖⾖' },
     { id: 4, type: 'human', name: '蔡徐坤' },
     { id: 5, type: 'robot', name: '夏娃' }
    ];
    转换为:
    {
     'human': [{ id: 1, name: '⿅晗' },{ id: 4, name: '蔡徐坤' }],
     'robot': [{ id: 2, name: '伊娃' },{ id: 5, name: '夏娃' }],
     'animal': [{ id: 3, name: '⾖⾖' }],
    }

    实现代码:

    list = [
        { 'id': 1, 'type': 'human', 'name': '⿅晗' },
        { 'id': 2, 'type': 'robot', 'name': '伊娃' },
        { 'id': 3, 'type': 'animal', 'name': '⾖⾖' },
        { 'id': 4, 'type': 'human', 'name': '蔡徐坤' },
        { 'id': 5, 'type': 'robot', 'name': '夏娃' }
    ]
    
    dict1 = {}
    方法1:
    for i in range(0,len(list)):
        s = list[i].pop('type')
        if s in dict1.keys():
            dict1[s].append(list[i])
        else:
            list2 = []
            list2.append(list[i])
            dict1[s]=list2    
    print(dict1)
    方法2:
    for item in list:
        if item['type'] in dict1.keys():
            s=item.pop('type')
            dict1[s].append(item)
            #print('dict1',dict1)
        else:   
            list2=[]
            s=item.pop('type')     
            list2.append(item)
            # print('list2',list2)
            dict1[s] = list2
            # print('dict1',dict1)
    prin(dict1)

    打印结果:

  • 相关阅读:
    Python3三位运算
    PyThon3函数的使用
    PyThon3类的基本使用
    PyThon3类的继承
    Python3方法重写
    【BZOJ3307】雨天的尾巴-线段树合并+树上差分
    【CF893F】Subtree Minimum Query-主席树
    【BZOJ2212】Tree Rotations(POI2011)-平衡树启发式合并
    【BZOJ2733】永无乡(HNOI2012)-平衡树启发式合并
    【BZOJ3160】万径人踪灭-FFT+Manacher
  • 原文地址:https://www.cnblogs.com/muzii/p/13471438.html
Copyright © 2011-2022 走看看