GVKun编程网logo

Python range()和zip()对象类型(range,python)

3

在本文中,我们将带你了解Pythonrange在这篇文章中,我们将为您详细介绍Pythonrange的方方面面,并解答和zip常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的CommonLi

在本文中,我们将带你了解Python range在这篇文章中,我们将为您详细介绍Python range的方方面面,并解答和zip常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的Common Lisp中的Python range()模拟、JavaScript函数类似于Python range()、Python 3.7-asyncio.sleep()和time.sleep()、Python 3中的zip()函数

本文目录一览:

Python range()和zip()对象类型(range,python)

Python range()和zip()对象类型(range,python)

我理解的功能怎么样range(),并zip()可以被用在for循环。但是我希望range()输出一个列表-非常像sequnix
shell中的列表。如果我运行以下代码:

a=range(10)print(a)

输出为range(10),表明它不是列表,而是其他类型的对象。zip()打印时具有类似的行为,输出类似

<zip object at "hexadecimal number">

所以我的问题是它们是什么,使它们具有什么优点?如何在不循环访问它们的情况下将其输出到列表中?

答案1

小编典典

您必须使用Python 3。

在Python
2中,对象ziprange确实按照您的建议运行,返回列表。它们被更改为类似生成器的对象,它们按需生成元素,而不是将整个列表扩展到内存中。优势之一是在其典型用例中具有更高的效率(例如,对它们进行迭代)。

“懒惰”版本在Python 2.x中也存在,但是它们具有不同的名称,即xrangeitertools.izip

要将所有输出一次检索到一个熟悉的列表对象中,您可以简单地调用list以迭代并使用内容:

>>> list(range(3))[0, 1, 2]>>> list(zip(range(3), ''abc''))[(0, ''a''), (1, ''b''), (2, ''c'')]

Common Lisp中的Python range()模拟

Common Lisp中的Python range()模拟

如何在Common Lisp中创建连续数字列表?

换句话说,rangeCommon Lisp中的Python函数等效于什么?

在Python中,range(2, 10, 2)return [2, 4, 6, 8],第一个和最后一个参数是可选的。尽管Emacs
Lisp具有,但我找不到通用的方法来创建数字序列number-sequence

可以使用循环宏模拟范围,但是我想知道一种可接受的方法来生成带有起点和终点以及步骤的数字序列。

答案1

小编典典

没有生成数字序列的内置方法,典型的方法是执行以下操作之一:

  • 采用 loop
  • 编写一个使用 loop

一个示例实现是(仅接受从“低”到“高”的计数):

(defun range (max &key (min 0) (step 1))   (loop for n from min below max by step      collect n))

这使您可以指定(可选)最小值和(可选)步进值。

生成奇数: (range 10 :min 1 :step 2)

JavaScript函数类似于Python range()

JavaScript函数类似于Python range()

JavaScript中是否有类似于Python的函数range()

我认为应该有比每次编写以下几行更好的方法:

array = new Array();
for (i = 0; i < specified_len; i++) {
    array[i] = i;
}

Python 3.7-asyncio.sleep()和time.sleep()

Python 3.7-asyncio.sleep()和time.sleep()

当我转到asyncio页面时,第一个示例是hello world程序。当我在python上运行它时3.73,我看不出与正常的任何区别,
有人可以告诉我区别并举一个简单的例子吗?

In [1]: import asyncio
   ...:
   ...: async def main():
   ...:     print('Hello ...')
   ...:     await asyncio.sleep(5)
   ...:     print('... World!')
   ...:
   ...: # Python 3.7+
   ...: asyncio.run(main())
Hello ...
... World!

In [2]:

In [2]: import time
   ...:
   ...: def main():
   ...:     print('Hello ...')
   ...:     time.sleep(5)
   ...:     print('... World!')
   ...:
   ...: # Python 3.7+
   ...: main()
Hello ...
... World!

我故意将时间从1秒增加到5秒,希望看到一些特别的东西,但我没有。

Python 3中的zip()函数

Python 3中的zip()函数

我知道如何zip()在Python 3中使用该函数。我的问题是关于以下内容,我以某种方式感到很奇怪:

我定义了两个列表:

lis1 = [0,1,2,3]
lis2 = [4,5,6,7]

并且我通过zip()以下方式对它们进行使用:

1. test1 = zip( lis1,lis2)

2. test2 = list(zip(lis1,lis2))

当我test1在解释器中键入时,我得到以下信息:

"zip object at 0x1007a06c8"

因此,我list(test1)在解释器中键入,得到了预期的结果,但是当我list(test1)再次键入时,我得到了一个空列表。

我发现的奇特之处在于,无论我test2在解释器中键入多少次,总能获得预期的结果,而且永远不会有一个空列表。

关于Python range和zip的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Common Lisp中的Python range()模拟、JavaScript函数类似于Python range()、Python 3.7-asyncio.sleep()和time.sleep()、Python 3中的zip()函数等相关知识的信息别忘了在本站进行查找喔。

本文标签: