一、 基本概念
注意點:
- 中括號表示
- 有序集合,無長度限制
- 元素可修改
- 索引從0開始,-1爲最後末尾開始
- 可以用len()函數來求列表長度,min()函數求列表最小值,max()函數求列表最大值;
- 用 in 和 not in 檢查指定元素是否在列表中,返回bool值;
- 列表中元素的類型可以不相同,它支持數字,字符串甚至可以包含列表(所謂嵌套)還可以包含函數名等任意類型。
二、列表基本操作
三、列表相關函數
1、列表創建
# -*- coding: utf-8 -*-
"""
Created on Mon Dec 23 09:31:05 2019
@author: Mr.Niu-列表學習
"""
#1、將元組轉化爲列表
s = list((1,3,5,7,9))
print(s)
#2、將range對象轉化爲列表
r = list(range(10))
print(r)
#3、將集合轉化爲列表
t = list({1,2,3,4,5})
print(t)
#4、創建空列表
w = list()
print(w)
w = [1,7,4,6,3,3]
print(w)
#5、將字符串轉化爲列表
print(list("hello world"))
#5、del刪除列表對象
del w
print(w)
運行結果: 使用del刪除w後,w已經無法訪問!
2、列表切片
- 語法:列表[起始:結束]
# 通過切片獲取元素時,會包括起始位置的元素,不會包括結束位置的元素
# 做切片操作時,總會返回一個新的列表,不會影響原來的列表
# 起始和結束位置的索引都可以省略不寫
# 如果省略結束位置,則會一直截取到最後
# 如果省略起始位置,則會從第一個元素開始截取
# 如果起始位置和結束位置全部省略,則相當於創建了一個列表的副本
# print(stus[1:])
# print(stus[:3])
# print(stus[:])
# print(stus)
- 語法:列表[起始:結束:步長]
# 步長表示,每次獲取元素的間隔,默認值是1
# print(stus[0:5:3])
# 步長不能是0,但是可以是負數
# print(stus[::0]) ValueError: slice step cannot be zero
# 如果是負數,則會從列表的後部向前邊取元素
print(stus[::-1])
3、列表相關函數
1、列表元素的修改
- 通過索引即下標直接修改
- 通過切片修改
# 通過切片來修改列表
# 在給切片進行賦值時,只能使用序列
# stus[0:2] = ['牛魔王','紅孩兒'] 使用新的元素替換舊元素
# stus[0:2] = ['牛魔王','紅孩兒','二郎神']
# stus[0:0] = ['牛魔王'] # 向索引爲0的位置插入元素
# 當設置了步長時,序列中元素的個數必須和切片中元素的個數一致
# stus[::2] = ['牛魔王','紅孩兒','二郎神']
- 通過切片刪除
# 通過切片來刪除元素
# del stus[0:2]
# del stus[::2]
# stus[1:3] = []
2、append,insert,extend函數,添加操作
- append()函數在列表末尾添加一個元素 (常用)
- extend()函數相當於列表的加法
stus.extend(['唐僧','白骨精'])
stus += ['唐僧','白骨精']
lst = [1, 2, 3, 4]
print(lst)
lst.append(5)
print(lst)
lst.insert(0, 0)
print(lst)
lst.insert(2, 1.5)
print(lst)
lst.extend([6, 7])
print(lst)
補充:extend函數可以連接兩個列表
運行結果:
3、pop,remove,clear函數,刪除操作
- clear()函數用來清空列表
4、sort,reverse函數
- sort()函數默認升序排列,若想要降序,需要加一個參數,reverse=True
data.sort(reverse=True)
補充:sample()函數是random庫裏的,在range(10000)裏面隨機選擇不重複的10個數。
5、count,index函數,計數和查找
注:index()函數可以有三個參數 lst.index(x, start, end),即從start下標查找到end結束;