Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python列表语法_Python_List - Fatal编程技术网

python列表语法

python列表语法,python,list,Python,List,有人能解释一下这个语法吗 (一) (二) 对于i,按 counts = [0] * k python中只有列表和字典?没有数组\队列\堆栈 for i, count in enumerate(counts): sorted_arr.extend([i] * count) 计算为包含k元素的列表,每个元素为0 [0] * k 计算为包含count元素的列表,每个元素为i 文件的相关章节如下: 该函数返回一个生成元组的迭代器。每个元组包含一个索引和计数中的关联项。因此

有人能解释一下这个语法吗

(一)

(二)
对于i,按

  counts = [0] * k
python中只有列表和字典?没有数组\队列\堆栈

  for i, count in enumerate(counts):
        sorted_arr.extend([i] * count)
计算为包含
k
元素的列表,每个元素为
0

[0] * k
计算为包含
count
元素的列表,每个元素为
i

文件的相关章节如下:


该函数返回一个生成元组的迭代器。每个元组包含一个索引和
计数中的关联项。因此,您的代码相当于:

for i, count in enumerate(counts):
Python有很多类,还有更多(除了好的和googleable的文档)。您还可以将列表用作和。

序列类型和乘法 这意味着包含
0
-s的大小
k
的列表。这适用于任何序列对象,例如:

[0]*k
列表上的迭代 考虑以下语法:

"foo"*2
这利用了Python的两个属性。第一个是
语法的
,它的工作原理与其他一些语言中的
foreach
类似。例如,以下内容将循环3次,
i
第一次等于
0
,第二次等于
1
,第三次等于
2

for i, value in enumerate(values):
    pass
第二个是价值解包。给定序列类型,可以将其值解压为不同的变量:

for i in [0,1,2]:
    pass
运行该行后,
i
将保持
42
j
将保持
69
。顺便说一句,这是一个元组,它是一个不可变的(即,你不能改变它)序列

最后,函数
enumerate
获取一个序列并返回一个元组序列,其中第一个元素是索引号,第二个元素是该索引处序列的值。确切地说,它接受一个可排序对象并返回一个迭代器,但差别相同

因此,基本上,通过使用该语法,您可以同时获得索引和值。很好

Python中的内置序列类型 您有一个列表(
[1,“fish”,2,“fish”,“red”,“fish”,“blue”,“fish”]
),一个dict(
{'one':2,2:'three'}
),一个元组(
(一,[1,2],三,)
),和一个集合(
{'one',3,(1,2)}
,Python2.7语法)。您还有一个frozenset,它是一个不可变集,没有语法糖

标准中还有更多的容器类型。还有一些


此外,还可以将标准列表用作堆栈或队列。不要让
数组
包欺骗你——你不是为了实现数组而使用它(你使用普通列表),而是用它来导入二进制数据。它是
struct
包的一种伴侣。

1。创建一个名为counts的数组,其中k个元素都等于0。对于这样的事情,只需使用shell来测试发生了什么。
list
是一个数组(在我看来,这个名称毫无意义,令人困惑,但不管怎样),它也是一个非常好的堆栈(它是动态的,并且分配过多,因此追加/推送会得到摊销O(1),而
pop
ing也是O(1))。队列(以及DEQUE)位于标准库中。在我的头顶上,还有一堆一堆的贝壳。@Bane推荐哪一种贝壳?我还没有安装python。@EladBenda安装python。任何蟒蛇。您可以使用系统提供的任何shell。以后再担心花哨的贝壳。如果不能够执行代码,学习一门语言是非常困难的。别忘了检查
集合
模块中可用的容器类型,尤其是
计数器
似乎适合您的程序。@EladBenda如果您对Python一无所知,因此必须询问基本上每个构造,在这里提问之前,你最好先看一下文档、一本书或至少一本教程。它可能会更快,而且不会显得懒惰。@EladBenda我现在已经添加了这方面的内容。但我同意德尔南的评论。您需要一个实用的Python安装和一本好的介绍性教科书。这是一本优秀的Python 3教科书:。第二版(可在同一站点上获得)讨论了Python2。只需使用标准python和notepad++或其他工具来编辑文本。
"foo"*2
for i, value in enumerate(values):
    pass
for i in [0,1,2]:
    pass
i, j = (42, 69, )