python运算符、内置函数、序列基本用法

本文详细介绍了Python中的map、zip、eval函数以及字典的get和item方法。map()函数通过应用指定函数到序列的每个元素上生成新的列表;zip()函数将多个序列对应元素打包成元组;eval()用于执行一个字符串表达式;reduce()函数用于对序列进行累积操作;字典的get方法安全获取键对应的值,item方法访问字典项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点

map函数

描述

map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

语法

map() 函数语法:

map(function, iterable, ...)

参数

function:函数
iterable:一个或多个序列

返回值

python2中返回列表
python3中返回迭代器

zip函数

描述

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

语法

zip([iterable, …])

参数

iterabl – 一个或多个迭代器;

返回值

python2中返回列表
python3中返回迭代器

eval函数

链接

reduce函数

链接

字典的get和item方法

get
item

练习代码

functools import reduce
def N_sum(N):
    """
    输入任意大的整数
    输出各位数字之和
    """
    return sum(map(int,N))


def set_opre(A, B):
    """
    输入两个集合分别计算交集并集和差集
    """

    setA = eval(A)  # eval为字符串转列表元祖字典函数
    setB = eval(B)
    int_set = setA & setB
    union_set = setA | setB
    difference_set = setA - setB
    return int_set, union_set, difference_set

def TranslateN(n):
    """
    输出一个数的二进制 八进制和十六进制
    """
    print("二进制:%s\n八进制:%s\n十六进制: %s\n" % (bin(n), oct(n), hex(n)))


def text4(lst):
    """
    输出列表中的奇数
    """
    return list(filter(lambda x: x % 2 == 1, lst))

def text5():
    """
    将两个列表中的值一一对应成字典输出
    """
    lstA = eval(input("请输入第一个列表"))
    lstB = eval(input("请输入第二个列表"))
    return dict(zip(lstA, lstB))

def text6():
    """
    将输入的列表排序
    """
    lst=eval(input("请输入列表:"))
    print(sorted(lst))
    print(sorted(lst, reverse=True))


def text7():
    lst = eval(input("请输入整数列表"))
    num1 = 1
    for i in lst:
        num1 = num1 * i
    num2 = reduce(lambda x, y: x * y, lst)
    print(num1,num2)


def text8():
    """
    曼哈顿距离d(i,j)=|xi-xj|+|yi-yj|
    """
    lstA = eval(input("请输入第一个坐标"))
    lstB = eval(input("请输入第二个坐标"))
    print(sum(map(lambda i,j: abs(i-j), lstA, lstB))) # 在python3中map返回的是迭代器


def text9():
    """
    输入若干集合的列表,输出这些集合的并集
    """
    lst_set = eval(input("请输入第一个坐标"))
    print(reduce(lambda i, j: i | j, lst_set))

def text10():
    """
    输入等比数列的首项、公比(不等于1且小于36的正整数)
    和一个自然是n,输出这个等比数列的前n项和
    """
    a1 = int(input("首项"))
    q = int(input("公比"))
    n = int(input("自然数"))
    print(a1 * int("1"*n, q))


def text11():
    """
    输入一个字符串,输出出现次数最多的字符及次数
    """
    data = input("输入字符串")
    d = dict()
    for ch in data:
        d[ch] = d.get(ch, 0) + 1
    mostcommon = max(d.items(),key=lambda item: item[1])
    print(mostcommon)
if __name__ == "__main__":
    # num = input("please input a number")
    # print(N_sum(num))
    # A = input("A")
    # B = input("B")
    # a,b,c = set_opre(A, B)
    # print("交集为:%s\n并集为:%s\n差集为:%s" %(a, b, c))
    # TranslateN(10000)
    # a=[1,2,3,4,5,6,7,9]
    # print(Text4(a))
    # print(text5())
    text11()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值