列表通过中括号把一堆数据括起来的方式形成,列表的长度不限。
列表里面的元素可以是不同的数据类型,但是一般是相同的数据类型。
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可独立使用也可同时使用。