Python3基本数据类型之列表

列表(List)是Python3中的"容器型"数据类型。

列表通过中括号把一堆数据括起来的方式形成,列表的长度不限。

列表里面的元素可以是不同的数据类型,但是一般是相同的数据类型。

nums = [1,3,5,7,9,11,13,15] user_info = ["jack", 18, "male"]

==列表支持索引(index)和切片(silice)的方式访问其中的元素==。

#demo1:索引 nums = [1,3,5,7,9,11,13,15] print(nums[1],[-1]) #output: 3 15

列表索引值从0开始,即[0]对应列表的第一个元素,同理依次往右计数

为简单访问列表的末尾元素,索引值可以为负数,[-1]表示列表最后一个元素,[-2]倒数第二个元素

#demo2:切片 nums = [1,3,5,7,9,11,13,15] print(nums[0:3]) print(nums[2:-1]) print(nums[:]) print(nums[::2]) print(nums[-5:-1]) print(nums[-1:-5:-1]) # 注意切出来的元素顺序 #output: [1, 3, 5] [5, 7, 9, 11, 13] [1, 3, 5, 7, 9, 11, 13, 15] [1, 5, 9, 13] [7, 9, 11, 13] [15, 13, 11, 9]

==切片总结==:

列表切片的返回结果是一个列表,即把切出来的元素放在一个新列表中。

切片操作的方法按照 list_name[start : end : step] 的通原则执行:

start是切片的开始位置,此位置元素包含在切出来的列表中。

end是切片的结束位置,结束位置的元素不包含在切出来的列表中。

step是切片的间隔,即每个step切一个元素出来。默认step是1。

[ : ] 冒号两边什么也不写,默认切整个列表的元素。

step也可以是负数,即倒着切,此时end处的元素依然不包含的新列表中。

==类列表可以连接在一起==。

#demo3: nums = [1,3,5,7,9] new_nums = nums + [2,4,6,8,10] print(new_nums) #output: [1,3,5,7,9,2,4,6,8,10]

==列表是可变的,可以修改列表中元素的值==。

#demo4:索引 nums = [1,2,3,4,5] nums[2] = 6 print(nums) #output: [1,2,6,4,5] #demo5:切片 words = ["a", "b", "c", "d", "e"] words[1:4] = ["B", "C", "D"] print(words) #output: ["a", "B", "C", "D", "e"]

==列表尾部增加元素、删除列表元素、清空列表==

#demo6: names = ['cindy', 'jack', 'alex', '小明'] names.append("jane") names[1:3] = [] print(names) names[:] = [] print(names) #output: ['cindy', '小明', 'jane'] []

==len()获得列表长度==

#demo7: names = ["cindy", "jack", "white"] print(len(names)) #output: 3

==max()、min()、sum()==:获得列表最大值、最小值、元素之和

#demo8: nums = [1,2,3,4,9] print(max(nums), min(nums), sum(nums)) # output: 9 1 19

==list()==:将其他数据类型(可迭代数据类型)转化为列表形式

#demo9: str1 = "string" t = (1,2,3) s = {1,2,3} d = {"name":"jack","age":18} print(list(str1)) #output:['s', 't', 'r', 'i', 'n', 'g'] print(list(t)) #output:[1, 2, 3] print(list(s)) #output:[1, 2, 3] print(list(d)) #output:['name', 'age']

==列表嵌套==:列表可以多重嵌套

#demo10: nums = [1,2,[3,4,5], [6,7,[0],8],3,4] 2、列表属性方法

Python中,一切皆对象,列表也不例外。

作为==List Objects==,列表对象也有很多方法属性,通过点的方式调用。

append() insert() extend() # 增 pop() remove() clear() # 删 index() count() copy() # 查、复制 sort() reverse() # 排序

==append(x)==
在列表的尾部添加一个新元素x,相当于:list_name[len(list_name):] = [x]

元素x可以是任意数据类型,因为列表是可以嵌套的,其他方法中的x同理。

#demo1: nums = [1,3,5] nums.append(7) print(nums) #output: [1,3,5,7]

==insert(index, x)==

在列表索引index位置前插入一个新元素x,原列表index处及后面的元素一次往后排。

#demo2: nums = [1,3,5] nums.insert(1,10) nums.insert(-1,10) print(nums) #output: [1,10,3,10,5]

==extend(iterable)==

从一个可迭代对象中增加新元素到列表中,extend每次调用仅接收一个参数。

可迭代的对象包含:列表、元组、字典、集合等

#demo3: nums = [1,2,3] nums.extend([4,5,6]) info = {"name":"jack","age":18} nums.extend(info) # nums.extend(10) 报错TypeError: 'int' object is not iterable print(nums) #output: [1,2,3,4,5,6,"name","jack"]

==pop( [index] )==

默认不传参数,删除列表最后一个元素并返回。

pop也可以通过指定下标索引删除特定位置元素并返回,索引值越界会报错。

注意空列表调用pop会报错:IndexError: pop from empty list

#demo4: nums = [1,2,3,4,5] print(nums.pop()) res = nums.pop(1) print(nums, res) lis = [] # lis.pop() #报错 #output: 5 [1,3,4] 2

==remove(x)==

删除列表中第一个出现的元素 x,x不存在就报错。

#demo5: nums = [1,2,3,2] nums.remove(2) print(nums) #output:[1,3,2]

==clear()==

删除列表中的所有元素,相当于 del nums[:]

#demo6: nums = [1,2,3] nums.clear() print(nums) #output:[]

==index(x[, start[, end])==

返回列表中元素x第一次出现位置处的索引值,如果x不存在就报错。

可选参数start和end,通过下标的方式限定查找的范围:start<= 范围 <end,

start和end可独立使用也可同时使用。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjsfp.html