Python中列表(List)是一个非常强大的 '集合',它可以包罗万象,只要是符合Python基本数据类型的数据List都能装进去,还是有序的,而不像set那样只能装不可变类型数据,并且无序。

有关set集合特性请参看 Python基础-基本数据类型(下)--set

python list列表操作总结(Python基础-基本数据类型)(1)

list栗子:

# coding:UTF-8 def data(): list_data = [] # 初始化列表 b = {'a': 1, 'b': 2} # 字典 c = 2 # int d = 'data' # string e = (1, 2) # 元祖 f = ['da'] # List g = {5} # set h = 1.5 # float list_data.append(b) list_data.append(c) list_data.append(d) list_data.append(e) list_data.append(f) list_data.append(g) list_data.append(h) print(list_data) if __name__ == '__main__': data() # =============================== # 输出:[{'a': 1, 'b': 2}, 2, 'data', (1, 2), ['da'], {5}, 1.5]

输出顺序和添加顺序保持一致

python list列表操作总结(Python基础-基本数据类型)(2)

场景一:访问List中的元素

同基本数据类型string同理,List中元素同样有其下标(索引),先来看看string中的元素与下标之间的关系

python list列表操作总结(Python基础-基本数据类型)(3)

要访问List中的元素数据,也可以使用下标来获取

python list列表操作总结(Python基础-基本数据类型)(4)

# coding:UTF-8 def data(): list_data = ['data', 55, (1, 2), {'a': 1, 'b': 2}, 5.5, ['da', 7]] data01 = list_data[0] print(data01) # data print(type(data01)) # <class 'str'> data02 = list_data[-6] print(data02) # data print(type(data02)) # <class 'str'> if __name__ == '__main__': data()

如果访问下标(索引)超出了列表的范围则会报索引越界错误

IndexError: list index out of range

然而当使用 list[a:b] 这样的方式去切列表的时候并不会报错

注:list[a:b] 中a为起始索引,b为截止索引,意思是取出索引从a开始一直到索引b终止的数据,不包含b索引数据,即左闭右开原则

类似于 list[0:9] 的形式。终止索引的值即使超过 list 的正向最大索引也不会报错的,当b大于正向最大索引时,可以理解为:

从起始索引一直截取到最后一个数据

list_data = ['data', 55, (1, 2), {'a': 1, 'b': 2}, 5.5, ['da', 7]] first_data = list_data[2:500] # 500大于最大索引值 print(first_data) # 输出(并没有报错) [(1, 2), {'a': 1, 'b': 2}, 5.5, ['da', 7]] # 开头不写默认从索引为0开始截取 first_data = list_data[:2] print(first_data) # 输出 ['data', 55]

对于正向截取上述截取甚至可以写成 list_data[2:] 也是截取到最后一个元素的意思

对于负向索引截取时同理,都不会报错

需要注意的

对于 list[a:b] 截取和字符串类型的截取,在负向索引截取时有个不同点,string字符串负向索引截取时会截取到的为空,这点需要注意下

以下是字符串类型的截取规则

python list列表操作总结(Python基础-基本数据类型)(5)

说白了就是,在对于List和string通过下标去截取时,只有在负向截取上有差异

list 负向截取超出最大索引时可以正常截取

string 负向截取超出最大索引时取道的为空


场景二:访问list中的元素并取得该元素的下标

对于访问集合类型数据,没有什么是for循环解决不了的,list数据也一样,通常通过for循环来顺序访问list中的元素:

list_data = ['data', 55, (1, 2), {'a': 1, 'b': 2}, 5.5, ['da', 7]] for i in list_data: print(i) # 输出 data 55 (1, 2) {'a': 1, 'b': 2} 5.5 ['da', 7]

上述这种只能循环出list中的元素,如果要顺带循环出每个元素的索引就需要使用enumerate函数

list_data = ['data', 55, (1, 2), {'a': 1, 'b': 2}, 5.5, ['da', 7]] for index, ele in enumerate(list_data): print('索引' str(index)) print(ele) # 输出 索引0 data 索引1 55 索引2 (1, 2) 索引3 {'a': 1, 'b': 2} 索引4 5.5 索引5 ['da', 7]

以上就是有关list集合常用到的部分操作,更多list集合方法的实践操作请参考API文档

python-3.86 API文档手册 中文版.chm

https://wwi.lanzoui.com/iyu4Erjndgd 提取码:data

更多精彩内容请关注 公众号:数据与编程之美

,