栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基本数据类型----Python入门之collections模块

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基本数据类型----Python入门之collections模块

第1关:命名元组 (namedtuple)
任务描述
本关任务:补充函数代码,完成对命名元组的简单操作。

编程要求
根据右边编辑器中各个函数中的提示,将函数补充完整,使得程序能够正常运行并输出正确的结果。编辑区的4个函数将按照如下顺序被调用:
p = CreatePoint()
PrintPoint§
p = IncX§
PrintPoint§
p = IncY§
PrintPoint§

测试说明
正确的补充代码后应该得到的结果:
当前位置:x = 0,y = 0
当前位置:x = 1,y = 0
当前位置:x = 1,y = 1

import collections
def CreatePoint():
    Point = collections.namedtuple("Point","x,y")
    p = Point(x = 0, y = 0)
    return p
def IncX(p):
    p = p._replace(x = 1)
    return p 
def IncY(p):
    p = p._replace(y = 1)
    return p
def PrintPoint(p):
    print("当前位置:x = %d,y = %d" % p)

第2关:计数器 (Counter)
任务描述
本关任务:编写一个对输入字符串的字符进行计数的程序。

编程要求
根据提示,在右侧编辑器补充代码完成函数功能,函数需要读取6行输入,然后进行如下操作:
将偶数行的数据加到计数器中
将奇数行的数据从计数器中减去
注意:行数是从0开始的。
最后输出计数器中的所有元素。

测试说明
测试输入:
aabbc
aabbc
aabbc
aabbc
aabbc
aabbc
预期输出:
[(‘a’, 0), (‘b’, 0), (‘c’, 0)]
测试输入:
a
b
a
b
a
b
预期输出:
[(‘a’, 3), (‘b’, -3)]

import collections
def Func():
    c = collections.Counter()
    for i in range(1,7):
        data = input()
        if(i%2!=0):
            c.update(data)
        else :
            c.subtract(data)
    print(c.most_common())   

第3关:双向队列 (deque)
任务描述
本关任务:编写一个能输出“震荡”队列的程序。

编程要求
根据提示,补充右侧编辑器代码完成函数功能,函数读取输入的一个数字n(n≥0),然后输出一个有n个元素,元素从0到n-1的“震荡”的队列,“震荡”的定义见测试说明。

测试说明
当输入:3时,输出的“震荡”队列应该是:
deque([1, 0, 2])
当输入:5时,输出的“震荡”队列应该是:
deque([3, 1, 0, 2, 4])

import collections
def Func():
    d = collections.deque()
    n = int(input())
    if(n>=0):
        d=collections.deque()
        for i in range (n):
            if(i%2!=0):
                d.appendleft(i)
            else:
                d.append(i)
    print(d)

第4关:有序字典 (OrderedDict)
任务描述
本关任务:读取数据创建n个键值对,将其排序后放入有序字典并输出。

编程要求
根据提示,在右侧编辑器补充代码,实现函数功能:读取n(n>0)行输入,以每一行的数据为key,行号(从0开始)为value,建立n对键值对,然后将他们按照key排序后,放入一个有序字典,最后输出这个有序字典。

测试说明
测试输入:
3
a
c
b
预期输出:
OrderedDict([(‘a’, 0), (‘b’, 2), (‘c’, 1)])
测试输入:
4
A
B
D
C
预期输出:
OrderedDict([(‘A’, 0), (‘B’, 1), (‘C’, 3), (‘D’, 2)])

import collections
def Func():
    od = collections.OrderedDict()
    n = int(input())
    for i in range(n):
        key = input()
        od[key]=i
        od = collections.OrderedDict(sorted(od.items(),key=lambda item:item[0]))
    print(od)

第5关:默认字典 (defaultdict)
任务描述
本关任务:补充函数代码,创建不同类型的默认字典。

编程要求
根据右边编辑器中各个函数中的提示,将函数补充完整,使得程序能够正常运行并输出正确的结果。
右侧编辑器的4个函数会被依次调用,并产生4个默认字典,并会以类似如下的方式,获取并输出默认值:
dd = GetIntDefaultDict()
print(“int默认字典的默认值:”,dd[‘a’])

测试说明
正确的补充代码后应该得到的结果:
int默认字典的默认值: 0
list默认字典的默认值: []
tuple默认字典的默认值: ()
str默认字典的默认值:

import collections
def GetIntDefaultDict():
    dd = collections.defaultdict(int)
    return dd
def GetListDefaultDict():
    dd = collections.defaultdict(list)
    return dd
def GetTupleDefaultDict():
    dd = collections.defaultdict(tuple)
    return dd
def GetStrDefaultDict(): 
    dd = collections.defaultdict(str)
    return dd

······通关成功······
如有问题,敬请斧正。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468226.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号