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, )