为什么Pythonlist的索引从0
为什么Python list的索引从0开始
python的创始人(Guido van Rossum)说过,Python使用0-based索引方式的原因之一是Python的切片(slice)语法。
先看看切片的用法。可能最常见的用法就是“从数组中切出前n位”或“从数值这第i位起切出n位”(前一种实际上是i==起始位的特殊用法)。如果使用这种语法时不需要表达成难看的+1或-1补充方式,那将是非常的优雅。
使用0-based的索引方式,Python的半开区间切片和缺省匹配区间切片语法变得非常漂亮: a[:n] 和 a[i:i+n],前者的标准写法就是a[0:n]。
如果是1-base的索引方式,那么,想让a[:n]表达成“取前n个元素”,(这是不行的),要么使用一个闭合区间切片语法,要么在切片语法中使用切片起始位和切片长度2个参数的形式。使用1-based索引方式,半开区间切片语法变得不优雅。这种方式下使用闭合区间切片语法,为了表达从第i位取n个元素时必须写出a[i:i+n-1]。这样看来,如果使用1-based的索引,使用切片起始位+长度的形式更合适。这样可以写成a[i:n]。事实上ABC语言就是这样做的——它使用了一个独特的表达方式,写成a@i|n。(注:ABC语言是Python的祖先之一)
Guido van Rossum说想其是被半开区间语法的优雅迷住了。特别是当两个切片操作位置邻接时,第一个切片操作的终点索引值是第二个切片的起点索引值时,太漂亮了,无法舍弃。例如,想将一个数组以i,j两个点切成三部分——这三部分将
会是a[:i],a[i:j]和a[:i]。
这就是为什么python的创始人要让Python使用0-based的索引方式的原因。
python 如何去list的第一个元素
取第一个的话。
a = [1,3,4,5,2,46]
print a[0]
去掉的话
a = [1,3,4,5,2,46]
print a[1:]
python中的list
list是一个函数,将参数强制转换成列表
list((1,4,7)) 对元组(1,4,7)使用list函数就返回列表[1,4,7]
map(list,zip(*a))表示对zip(*a)的每一个单位都执行list函数
而且这在python 2.6.6中执行正常,执行效果如下
>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> zip(*a)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>> map(list,zip(*a))
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
把python list中每个元素加1,有什么简洁的写法么
使用python的列表生成式即可,列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。代码如下:
PYTHON如何打印列表中每个元素:
1、首先基于文本文档(Markdown) 设想好需要的基本需要的表、字段、类型。
2、随后使用 Rails Migration 随着功能的开发逐步创建表。
3、随着细节功能的开发、需求,逐步增加字段,删除字段,或者调整字段类型。
4、然后第一个 Release 的时候清理 Migrations 合并成一个。
5、最后随着后期的改动,逐步增加、修改、删除字段或表。
Python关于list的操作
直接:
new_list = [i for i in a_list if i > 0]
new_list 就是全部 >0 的数字
python list 取任意部分,怎么实现
lst=[0,1,2,3,4,5,6,7,8,9]
print(lst[:],lst[1:2],lst[-2:-1],lst[::2])
python 怎么表示一个list中有很多list
实例:
a = [[1, 2], [1], [3, 4], [7]]
这样a就是一个list,其中的每个元素都是list。
这样的语法也是很自然的,python的list里面可以存放任何的数据类型。
关于python中list的加和
[x+y for x, y in zip(list1, list2)]
python list 怎么查出一个元素的所有位置
list的index(object)返回 元素第一次出现的位置
如
a = ["ab","cd",1,3]
print a.index(1)
输出就是2
python list找出一个元素的位置(重复元素怎么分别找出位置)
使用list的index方法可以找到list中第一次出现该元素的位置
>>> l = ['a','b','c','c','d','c']
>>> find='b'
>>> l.index(find)
1
找出出现该元素的所有位置可以使用一个简单的表理解来实现
>>> find = 'c'
>>> [i for i,v in enumerate(l) if v==find]
[2, 3, 5]
为什么Pythonlist的索引从0:等您坐沙发呢!