七爪源码:5 个让初学者感到困惑的 Python 操作     DATE: 2024-04-27 16:44:26

七爪源码:5 个让初学者感到困惑的 Python 操作

本文总结了一些高度相似的爪源作 Python 操作,很容易混淆 ,让初尤其适合初学者 。困惑

七爪源码�:5 个让初学者感到困惑的 Python 操作


Lambda 参数:在定义与运行时有界

func = lambda x, y=y: x + y

func = lambda x: x + y

示例  :将 y 赋值为 10 并定义函数 :

y = 10nfunc1 = lambda x: x + ynfunc2 = lambda x, y=y: x + ylist(map(func1, lst))n>>> [11, 12, 13, 14, 15]list(map(func2, lst))n>>> [11, 12, 13, 14, 15]

然后让我们更新 y 的值 ,运行函数,让初看看会发生什么。困惑

y = 100nlist(map(func1,爪源作 lst))n>>> [101, 102, 103, 104, 105]list(map(func2, lst))n>>> [11, 12, 13, 14, 15]

显然 func1 中的 y 现在采用新值 100 而 func2 仍在使用 y = 10 ,函数定义后对 y 的让初任何更新都不会影响它使用的参数 。


随机选择有/无替换

import randomrandom.choices(list(range(10)), k=8)n>>> [6, 3, 5, 5, 9, 4, 4, 2]

random.sample(list(range(10)), k=8)n>>> [1, 5, 3, 7, 2, 0, 8, 4]


复制:浅与深

import copya = [[1, 2], [3, 4]]nb = copy.copy(a); bn>>> [[1, 2], [3, 4]]a[1].append(5)nbn>>> [[1, 2], [3, 4, 5]]

a = tp_exit_ids_items = list()nc = copy.deepcopy(a); cn>>> [[1,困惑 2], [3, 4]]a[1].append(5)ncn>>> [[1, 2], [3, 4]]


等价与平等

a = [[1, 2], [3, 4]]nb = [[1, 2], [3, 4]]nc = a# equivalent checkna == bn>>> Truena == cn>>> True

# equality checkna is bn>>> Falsena is cn>>> True


搜索子字符串

有四种方法可以在字符串中搜索子字符串 :

以下操作都返回结果 4,因为在索引 4 处找到“on” :

"python".find("on")n"python".rfind("on")n"python".index("on")n"python".rindex("on")

最重要的爪源作区别是 find() 和 rfind() 如果 sub 不成立则返回 -1; index() 和 rindex() 抛出一个 ValueError 代替  :

"python".find("a")n>>> -1"python".index("a")n>>> ValueError: substring not found


关注七爪网,获取更多APP/小程序/网站源码资源!让初

困惑