![]() |
无聊的刺猬 · sql server decimal 和 ...· 4 月前 · |
![]() |
眼睛小的鸭蛋 · 杭州西湖区门户网站 西湖文旅集团· 1 年前 · |
![]() |
爱喝酒的日光灯 · 从零实现一个Promise - 知乎· 1 年前 · |
![]() |
大力的手链 · 明清皇家陵寝(明、清两朝皇帝悉心规划营建的文 ...· 1 年前 · |
![]() |
玩足球的灯泡 · c# Interface, virtual ...· 1 年前 · |
序列是 Python 中最基本的数据结构。
序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。
Python 有 6 个序列的内置类型,但最常见的是列表和元组。
列表都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python 已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
与字符串的索引一样,列表索引从 0 开始,第二个索引是 1 ,依此类推。
通过索引列表可以进行截取、组合等操作。
#!/usr/bin/python3以上实例输出结果:
green索引也可以从尾部开始,最后一个元素的索引为 -1 ,往前一位为 -2 ,以此类推。
#!/usr/bin/python3以上实例输出结果:
black white yellow
使用下标索引来访问列表中的值,同样你也可以使用方括号 [] 的形式截取字符,如下所示:
#!/usr/bin/python3以上实例输出结果:
[10, 20, 30, 40]使用负数索引值截取:
以上实例输出结果:
list[1]: Runoob list[1:-2]: ['Runoob', 'Zhihu']你可以对列表的数据项进行修改或更新,你也可以使用 append() 方法来添加列表项,如下所示:
注意: 我们会在接下来的章节讨论 append() 方法的使用。
以上实例输出结果:
第三个元素为 : 1997 更新后的第三个元素为 : 2001 更新后的列表 : ['Google', 'Runoob', 'Taobao', 'Baidu']可以使用 del 语句来删除列表的的元素,如下实例:
以上实例输出结果:
原始列表 : ['Google', 'Runoob', 1997, 2000] 删除第三个元素 : ['Google', 'Runoob', 2000]>>> l = [i for i in range(0,15)] >>> print(l[::2]) [0, 2, 4, 6, 8, 10, 12, 14]注意:我们会在接下来的章节讨论 remove() 方法的使用
Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
Python 表达式结果 描述 len([1, 2, 3])3长度 [1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合 ['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复 3 in [1, 2, 3]True元素是否存在于列表中 for x in [1, 2, 3]: print(x, end=" ")1 2 3迭代Python列表截取与拼接
Python的列表截取与字符串操作类型,如下所示:
L=['Google', 'Runoob', 'Taobao']Python 表达式结果 描述 L[2]'Taobao'读取第三个元素 L[-2]'Runoob'从右侧开始读取倒数第二个元素: count from the right L[1:]['Runoob', 'Taobao']输出从第二个元素开始后的所有元素>>>L=['Google', 'Runoob', 'Taobao'] >>> L[2] 'Taobao' >>> L[-2] 'Runoob' >>> L[1:] ['Runoob', 'Taobao']列表还支持拼接操作:
>>>squares = [1, 4, 9, 16, 25] >>> squares += [36, 49, 64, 81, 100] >>> squares [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] c = [2, 3]
print("operator.eq(a,b): ", operator.eq(a,b))
print("operator.eq(c,b): ", operator.eq(c,b))
以上代码输出结果为:
operator.eq(a,b): False operator.eq(c,b): TruePython列表函数&方法
Python包含以下函数:
序号函数 1len(list)
列表元素个数 2max(list)
返回列表元素最大值 3min(list)
返回列表元素最小值 4list(seq)
将元组转换为列表Python包含以下方法:
序号方法 1list.append(obj)
在列表末尾添加新的对象 2list.count(obj)
统计某个元素在列表中出现的次数 3list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) 4list.index(obj)
从列表中找出某个值第一个匹配项的索引位置 5list.insert(index, obj)
将对象插入列表 6list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 7list.remove(obj)
移除列表中某个值的第一个匹配项 8list.reverse()
反向列表中元素 9 list.sort( key=None, reverse=False)
对原列表进行排序 10list.clear()
清空列表 11list.copy()
复制列表#0 python 创建二维列表,将需要的参数写入 cols 和 rows 即可
list_2d = [[0 for col in range(cols)] for row in range(rows)] >>> list_2d = [ [0 for i in range(5)] for i in range(5)] >>> list_2d[0].append(3) >>> list_2d[0].append(5) >>> list_2d[2].append(7) >>> list_2d [[0, 0, 0, 0, 0, 3, 5], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 7], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]#0 打杂的
854***070@qq.com
我理解为:
l[start:end:span]遍历 [start,end),间隔为 span,当 span>0 时顺序遍历, 当 span<0 时,逆着遍历。
start 不输入则默认为 0,end 不输入默认为长度。
c@sm
149***624@qq.com
Lmac
lma***03@163.com
david
185***88@qq.com
楼上两位同学说的都对,还有一个就是用list自带的copy()方法,把重新开辟内存空间存储新列表。
original_list=[0,1,2,3,4,5,6,7,8] copy_list=original_list.copy() copy_list=copy_list+['a','b','c'] print("original_list:",original_list) print("copy_list modify:",copy_list)
original_list: [0, 1, 2, 3, 4, 5, 6, 7, 8] copy_list modify: [0, 1, 2, 3, 4, 5, 6, 7, 8, 'a', 'b', 'c']
182yzh_
182***6895@qq.com
空列表可以简单地通过两个中括号进行表示([])- 一里面什么东西都没有,但是,如果想创建一个占用十个元素空间,却不包括任何有用内容的列表,又该怎么办呢?首先可以类似于下面的方法,用某一个具体的值代替。
>>> list_empty = [0]*10 >>> list_empty [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
这样就生成了一一个包括10个0的列表。然而,有时候可能会需要一个值来代表空一意味着没有在里面放置任何元素。这个时候就需要使用None。None 是一个Python的内建值,它的确切含意是"这里什么也没有"。因此,如果想初始化个长度为10的列表,可以按照下面的例子来实现:
>>> list_empty = [None]*10 >>> list_empty [None, None, None, None, None, None, None, None, None, None]
这样就可以再去对list的各个元素进行初始化了
malan
may***im.ac.cn
这种情况发生是因为只定义了一个空列表,没有进行任何的赋值,所以列表里什么也没有,而后面的报错也明确表示了索引超出范围,即写上的0其实是第一位值的位置,而此时是空列表没有赋值,故而报错。
而如果我们使用以下语句则不会报错:
>>> a[0:]这个不是什么小技巧,这是不一样的语句意义,这句话其实是把这个列表 a 里的所有值都输出,其效果和下面表达的最终结果是一致的。
而这个语句并不能避免上面报错中超出索引范围的错误,这个根本就是两种不同的意义的语句。a[0:] 和 a[:] 在脚本输出时相当于 print(a) 的意思。这不是解决错误的方式,不能将它当成 trick 来用。
GaiFan
343***128@qq.com
nicergj
nic***j@163.com
Yota_Togashi
116***47@qq.com
爱睡觉的懒猫
wan***houyan@163.com
Python 列表函数&方法的对象不仅可以是字符串也可以是列表。
list1 = ["Googl",'Runoob',1997,2002] list2 = [1,2,3,4,5,6] list2.append(list1)print ("list2:",list2)
输出结果如下:
list2: [1, 2, 3, 4, 5, 6, ['Googl', 'Runoob', 1997, 2002]]简单理解:python 在操作对象的时候,会根据自身对对象的定义进行操作,这里 list1 被定义的就是列表,那么 list.append(obj) 在操作 list1 时就作为列表追加。
爱睡觉的懒猫
wan***houyan@163.com
未来我来
951***665@qq.com