首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

必读!53个Python经典面试题详解

解释Range函数 Range函数可以用来创建一个整数列表,一般用在for循环中。它有3种使用方法。 Range函数可以接受1到3个参数,参数必须是整数。...请注意:已经将range每种用法包装在一个递推式构造列表(list comprehension)中,以便我们可以看到生成。...列表和数组有什么区别? 注意:Python标准库有一个array(数组)对象,但在这里,特指常用Numpy数组。 列表存在于python标准库中。数组由Numpy定义。...记住,数组不是列表。数组来自Numpy和算术函数,例如线性代数。 我们需要使用Numpy连接函数concatenate()实现。...字典和列表查找速度哪个更快? 在列表中查找一个需要O(n)时间,因为需要遍历整个列表,直到找到为止。 在字典中查找一个需要O(1)时间,因为它是一个哈希表。

6.8K30

异步,同步,阻塞,非阻塞程序实现

如果是同步,线程会等待接受函数返回(或者轮函数结果,直到查出它返回状态和返回)。如果是异步,线程不需要做任何处理,在函数执行完毕后会推送通知或者调用回调函数。...在web项目中,这是很可怕。所以我们需要引入非阻塞。非阻塞就是为了让一个响应操作,不影响另一个响应。否则,当A用户在访问某个耗时巨大网页时,B用户只能对着白板发呆。...那么,我们该如何实现自己非阻塞sleep呢。 (tornadosleep,原理十分复杂。以后再细说。) 场景二:轮非阻塞 实现非阻塞场景,关键在于函数不能阻塞住当前线程。...# timer是生成器,这是我们可以在单线程下切换timer上下文关键。...上面的代码中,在一个while循环中timer状态。由于timer存在于wait中。所以需要把timer“提取”出来。

7.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

Python 中 4 个高效技巧!

今天和大家分享 4 个省时 Python 技巧,可以节省 10~20% Python 执行时间。 反转列表 Python 中通常有两种反转列表方法:切片或 reverse() 函数调用。...这两种方法都可以反转列表,但需要注意是内置函数 reverse() 会更改原始列表,而切片方法会创建一个列表。 但是他们表现呢?哪种方式更有效?...of 5: 10.7 usec per loop 这两种方法都可以反转列表,但需要注意是内置函数 reverse() 会更改原始列表,而切片方法会创建一个列表。...与其他编程语言不同,Python 不需要使用临时变量交换两个数字或。...但是,在 for 循环中使用函数需要更长执行时间,因为每次迭代都会调用该函数。 相反,如果在函数内部实现了 for 循环,则该函数只会被调用一次。 为了更清楚地解释,让我们举个例子!

43910

100 个基本 Python 面试问题第四部分(81-100)

我们可以直接在“for”循环中使用这个对象,或者通过调用 list() 方法将它转换成一个元组列表。...生成器使我们能够保持函数或步骤执行,只要我们保留它。然而,这里有几个例子说明使用生成器是有益。 我们可以用生成器替换循环,以有效地计算涉及大数据集结果。...与集合不同,列表可以包含具有相同项目。 在 Python 中,列表一个count() 函数,它返回特定项目的出现次数。 计算单个项目的出现次数。...使用 NumPy 读取和写入项目更快。 使用 NumPy使用标准列表更方便。 NumPy 数组更高效,因为它们增强了 Python 中列表功能。...# 创建一个空数组 numpy.empty(shape=(0,0)) 回到目录 ---- 总结——100 个基本 Python 面试题 已经写了很长一段时间技术博客,这是一篇面试题分享。

3.6K31

万字肝货 | 讲述Python在 高中信息技术 中6大应用问题!

对于这种两个变量进行互换运算,其它编程语言几乎都是通过第三方变量“暂存”中间数据方式完成,例如最初有“x=3”和“y=4”两个赋值语句,分别将3和4这两个数据给变量x和y;接着需要再通过三个赋值语句完成...x和y数据互换:“z=x”、“x=y”和“y=z”,意思分别是`“将x(3)给z”、“将y(4)给x”和“将z(3)给y”,此时x变成4、y变成3。...Fibonacci数列之间使用一个空格分隔(默认是回车)。...2.randint()生成随机整数后存入集合“去重” 与法1类似,只不过是使用集合而非列表存储生成随机数:“my_set = set()”,建立一个空集合;接着,仍然是在while循环中,通过randint...2.使用列表推导式 Python列表推导式非常灵活,能够以非常简洁方式快速生成满足特定需求列表

2.5K20

赌5毛钱,你解不出这道Google面试题

依靠这些属性,就能够生成一些 HTML,并确保生成内容与他给我们内容相类似。 这是使用绝对定位完成,就像他例子一样: ? ▲答案:3 这种方法也可以处理更大一些数据集,如下图: ?...顺序迭代 由于内存比函数调用堆栈要大,所以我一个想法是在一个循环中完成整个事情。我们将跟踪节点列表列表。我们将不断添加它们,并将它们链接在一起,直到退出循环。...通过将节点拆分成 3 个更小数组,我们可以减少内存占用,以及需要列表列表中执行循环次数。尽管如此,这并不能解决所有颜色都相同情况下会出现问题,因此我们并不会使用此方法修改递归版本。...这是一个很大主题,很多地方都需要解释。另外,虽然它使用了递归结构,但它可能并不会想你所期望那样比while循环还快。...还为具有 X 和 Y 未知项列表编写了一个节点生成器。听起来是不是很熟悉?同样需要使网格位居屏幕中央。不过,要做到这点,在 HTML 中比在游戏引擎中要更容易实现。

88810

有人把NumPy画成了画,生动又形象

原文链接: http://jalammar.github.io/visual-numpy/ 创建数组 我们可以创建一个NumPy数组(也就是强大ndarray),方法是传递一个python列表使用...将它们按位置相加(即添加每一行)就像输入data + ones一样简单: ? 当我开始学习这些工具时,发现这样抽象使不必在循环中编写这样计算程序,这让耳目一新。...创建矩阵 我们可以传递python列表列表形状如下,让NumPy创建一个矩阵表示它们: np.array([[1,2],[3,4]]) ?...点乘 算术一个关键区别是使用点乘和矩阵乘法。NumPy给每个矩阵一个点乘dot()方法,我们可以用它执行点积操作与其他矩阵: ?...我们不仅可以在矩阵中聚合所有的,还可以使用axis参数跨行或跨列聚合: ? 暂时翻译到这里,后面还有更多内容,需要同学可以留言,我会翻译后面的内容。

85920

JAVA语言程序设计(一)04747

变量 程序运行期间内容可以发生改变量 首先需要创建一个变量并且使用格式 数据类型、变量名称 变量名称 = 数据; 将右边数据,赋值交给左边变量 变量基本使用 int public class...一旦执行,立刻跳过当前次坏剩余内容,马上开始下一次坏 死循环 循环嵌套写法 集成开发环境 概念:一条龙服务,就是啥都帮你做了 Idea项目结构 首先需要将你对应...jdk给对应上 然后会生成src文件 在里面新建一个package 文件名需要公司网址倒过来 随便搞2下 需要自行关闭....教程失败 流程: 创建项目=>取名字并且选中jdk=>生成src文件=>在src文件中创建包=>然后再建立类 方法回顾 这边还是选用一般方式去执行,高度集成化方式将在具体开发中重新学习 定义方法...,全都是统一什么类型 左侧中括号,代表一个数组 左侧数组名称,给数组取一个名字 右侧new代表创建数组动作 右侧数据类型,必须和左侧数据类型保持一致 右侧中括号长度,也就是数组当中,

5.1K20

谷歌100多次面试都会提一个问题,你会解吗?

顺序迭代 由于内存比函数调用堆栈要大,所以我一个想法是在一个循环中完成整个事情。我们将跟踪节点列表列表。我们将不断添加它们,并将它们链接在一起,直到退出循环。...但该算法一个缺陷是,它执行得相当慢。在上述代码性能评估中,没有考虑到循环列表列表情况,这显然对性能有很大影响。 随机迭代 采用递归方法背后思路,并以迭代方式进行应用。...通过将节点拆分成 3 个更小数组,我们可以减少内存占用,以及需要列表列表中执行循环次数。尽管如此,这并不能解决所有颜色都相同情况下会出现问题,因此我们并不会使用此方法修改递归版本。...这是一个很大主题,很多地方都需要解释。另外,虽然它使用了递归结构,但它可能并不会想你所期望那样比while循环还快。...这使得使用者可以通过键盘上方向键移动世界地图。 还为具有 X 和 Y 未知项列表编写了一个节点生成器。听起来是不是很熟悉?同样需要使网格位居屏幕中央。

95320

赌 5 毛钱,你解不出这道 Google 面试题

依靠这些属性,就能够生成一些 HTML,并确保生成内容与他给我们内容相类似。 这是使用绝对定位完成,就像他例子一样: ? 答案:3 这种方法也可以处理更大一些数据集,如下图: ?...顺序迭代 由于内存比函数调用堆栈要大,所以我一个想法是在一个循环中完成整个事情。我们将跟踪节点列表列表。我们将不断添加它们,并将它们链接在一起,直到退出循环。...通过将节点拆分成 3 个更小数组,我们可以减少内存占用,以及需要列表列表中执行循环次数。尽管如此,这并不能解决所有颜色都相同情况下会出现问题,因此我们并不会使用此方法修改递归版本。...这是一个很大主题,很多地方都需要解释。另外,虽然它使用了递归结构,但它可能并不会想你所期望那样比while循环还快。...这使得使用者可以通过键盘上方向键移动世界地图。 还为具有 X 和 Y 未知项列表编写了一个节点生成器。听起来是不是很熟悉?同样需要使网格位居屏幕中央。

91110

越早知道越好五个Python特性

我们还可以通过调用aList[::-1]反转列表发现这种技术非常优雅。 ? 列表也可以解压成单独元素,或者使用星号将元素和子列表混合。...Zip函数创建一个迭代器,用于聚合来自多个列表元素。...它允许在for循环中并行遍历列表并并行排序。可以使用星号解压缩它。...它是一个经常在for循环中使用自动计数器,因此在for循环中不再需要通过counter = 0和counter += 1创建和初始化计数器变量。...换句话说,它们动态地生成,并且不将以前存储在内存中,因此我们只能对它们进行一次迭代。 它们通常用于读取大文件或使用关键字yield生成无限序列。经常发现它在大多数数据科学项目中很有用。

63320

Python 数据分析(PYDA)第三版(一)

这是一个增强 Python 解释器,或者使用 Jupyter 笔记本,这是最初在 IPython 项目创建基于 Web 代码笔记本。...要创建一个,你需要传递一个类型或函数,用于为字典中每个槽生成默认: In [115]: from collections import defaultdict In [116]: by_letter...列表、集合和字典推导 列表推导是 Python 语言中一个方便且广泛使用特性。它们允许您通过过滤集合元素,将通过过滤元素转换为一个简洁表达式简洁地形成一个列表。...普通函数一次执行并返回一个结果,而生成器可以通过暂停和恢复执行每次使用生成器时返回多个序列。...生成器表达式 另一种生成方法是使用生成器表达式。这是列表、字典和集合推导生成器类比。

6500

复杂性思维第二版 二、图

为了测试这个说法,我们将开发算法来生成随机图,并检查它们是否连通。 2.4 生成将首先生成一个完全图,这是一个图,其中每个节点都彼此连接。...这是一个生成器函数,它接收节点列表并枚举所有不同偶对。如果你不熟悉生成器函数,你可能需要阅读附录?,然后回来。...最初,已访问集合是空,我们创建一个名为stack列表,跟踪我们发现但尚未处理节点。最开始,栈包含单个节点start。 现在,每次在循环中,我们: 从栈中删除一个节点。...(n, p) for p in ps] 这是我们看到使用 NumPy 一个例子。...为了计算y使用列表推导迭代ps元素,并计算出每个为p随机图连通概率。 图(?)展示了结果,竖直线为p*。从 0 到 1 转变发生在预测临界附近。在对数刻度上,这个转变大致对称。

92130

观点 | TensorFlow sucks,有人吐槽TensorFlow晦涩难用

不幸是,尽管 TensorFlow 已经出现了两年之久,我们还是很难找到一篇能够全面「冷静评价」TensoFlow 文章。 或许这是因为用了一个错误搜索引擎?...你需要定义一个图,然后以字典形式传递数据,同时不要忘了在图中间层添加输出,否则你将无法获得它。虽然这很麻烦,但还是可行。 想要有条件地执行几个层?...总之,对公众来说,TensorFlow 并不像是一个完全开源项目很同意。...虽然 PyTorch 例子比 TensorFlow 少一行代码,但其中计算过程要更加清晰易懂,训练循环中句法和真实学习过程要匹配得多: 1....开发它就是为了让这样的人能够轻松解耦并追踪使用所有库模型表现,也实现了 Tensorboard 不能提供很多有用特性。 ?

774100

图解NumPy这是理解数组最形象一份教程了

import numpy as np 创建数组 我们可以通过传递一个 python 列表使用 np.array()创建 NumPy 数组(极大可能是多维数组)。...我们只需传递希望 NumPy 生成元素数量即可: ? 一旦创建了数组,我们就可以尽情对它们进行操作。 数组运算 让我们创建两个 NumPy 数组展示数组运算功能。...当我开始学习这些工具时,发现这样抽象让不必在循环中编写类似计算。此类抽象可以使在更高层面上思考问题。 除了「加」,我们还可以进行如下操作: ?...创建矩阵 我们可以传递下列形状 python 列表,使 NumPy 创建一个矩阵表示它: np.array([[1,2],[3,4]]) 我们也可以使用上面提到方法(ones()、zeros()...让我们看看用数字表示以下文字步骤: 模型需要先查看大量文本,再用数字表示这位诗人的话语。我们可以让它处理一个小数据集,并用它构建一个词汇表(71,290 个单词): ?

1.9K20

一道Google面试题:如何分解棘手问题(下)

如果我们节点没有被扫描,调用getousids并等待它被扫描完。这是同步,但可能需要一些时间。 当它返回一个邻近列表时,检查那些与最大邻近列表相对列表。如果较大,则存储该。...如果把所有东西都改成单一颜色,就会遇到堆栈溢出。这是因为我们递归函数经历了10K次递归。 顺序迭代 由于内存比函数调用堆栈大,一个想法是在一个循环中完成整个操作。 我们将跟踪节点列表。...花了一个晚上大部分时间试图记住如何动态地更改循环中索引,然后记得while(true)。自从写了传统循环以来,已经完全忘记它了。 既然有了武器,就准备进攻。...甚至不能告诉你,甚至自己都不确定从头到尾它会发生什么。 我们没有添加到以前扫描ID列表中,而是从remainingnodes数组中拼接出。 太懒惰!...它有一个预定义节点列表实时处理这个列表。这使得你可以通过点击(左)、(右)、(上)和(下)键在世界地图上移动,即使角度略有偏差。 还为具有X和Y未知项列表编写了一个节点生成器。

85330

图解NumPy,别告诉你还看不懂!

import numpy as np 创建数组 我们可以通过传递一个 python 列表使用 np.array()创建 NumPy 数组(极大可能是多维数组)。...我们只需传递希望 NumPy 生成元素数量即可: ? 一旦创建了数组,我们就可以尽情对它们进行操作。 数组运算 让我们创建两个 NumPy 数组展示数组运算功能。...当我开始学习这些工具时,发现这样抽象让不必在循环中编写类似计算。此类抽象可以使在更高层面上思考问题。 除了「加」,我们还可以进行如下操作: ?...创建矩阵 我们可以传递下列形状 python 列表,使 NumPy 创建一个矩阵表示它: np.array([[1,2],[3,4]]) 我们也可以使用上面提到方法(ones()、zeros()...让我们看看用数字表示以下文字步骤: 模型需要先查看大量文本,再用数字表示这位诗人的话语。我们可以让它处理一个小数据集,并用它构建一个词汇表(71,290 个单词): ?

2.1K20

【图解 NumPy】最形象教程

import numpy as np 创建数组 我们可以通过传递一个 python 列表使用 np.array()创建 NumPy 数组(极大可能是多维数组)。...我们只需传递希望 NumPy 生成元素数量即可: ? 一旦创建了数组,我们就可以尽情对它们进行操作。 数组运算 让我们创建两个 NumPy 数组展示数组运算功能。...当我开始学习这些工具时,发现这样抽象让不必在循环中编写类似计算。此类抽象可以使在更高层面上思考问题。 除了「加」,我们还可以进行如下操作: ?...创建矩阵 我们可以传递下列形状 python 列表,使 NumPy 创建一个矩阵表示它: np.array([[1,2],[3,4]]) 我们也可以使用上面提到方法(ones()、zeros()...让我们看看用数字表示以下文字步骤: 模型需要先查看大量文本,再用数字表示这位诗人的话语。我们可以让它处理一个小数据集,并用它构建一个词汇表(71,290 个单词): ?

2.5K31

图解NumPy这是理解数组最形象一份教程了

import numpy as np 01 创建数组 我们可以通过传递一个 python 列表使用 np.array() 创建 NumPy 数组(极大可能是多维数组)。...我们只需传递希望 NumPy 生成元素数量即可: ? 一旦创建了数组,我们就可以尽情对它们进行操作。 02 数组运算 让我们创建两个 NumPy 数组展示数组运算功能。...当我开始学习这些工具时,发现这样抽象让不必在循环中编写类似计算。此类抽象可以使在更高层面上思考问题。 除了「加」,我们还可以进行如下操作: ?...创建矩阵 我们可以传递下列形状 python 列表,使 NumPy 创建一个矩阵表示它: np.array([[1,2],[3,4]]) 我们也可以使用上面提到方法(ones()、zeros()...我们可以让它处理一个小数据集,并用它构建一个词汇表(71,290 个单词): ? 这个句子可以被分成一个 token 数组(基于通用规则单词或单词一部分): ?

1.8K22
领券