列表
列表是一个有序且可更改的集合,允许重复的成员。在 Python 中,列表用方括号[]编写。
-支持索引取值
-支持切片:切片得到的结果还是一个列表
列表中可以存放任意类型的数据
访问项目
您可以通过引用索引号来访问列表项:
实例:
打印列表的第二项:
thislist = ["apple", "banana", "cherry"]
print(thislist[1])
负的索引
负索引表示从末尾开始,-1 表示最后一个项目,-2 表示倒数第二个项目,依此类推。
实例:
打印列表的最后一项:
thislist = ["apple", "banana", "cherry"]
print(thislist[-1])
索引范围
您可以通过指定范围的起点和终点来指定索引范围。
指定范围后,返回值将是包含指定项目的新列表。
实例:
返回第三、第四、第五项:
thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[2:5])
注释:搜索将从索引 2(包括)开始,到索引 5(不包括)结束。
负索引的范围
如果要从列表末尾开始搜索,请指定负索引:
实例:
此例将返回从索引 -4(包括)到索引 -1(排除)的项目:
thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[-4:-1])
列表的增删改查
添加数据:
①append:列表后添加一个元素
a = ['tony', 'sun']
a.append('moom')
print(a)
②insert:列表中指定索引位置插入元素
a = ['tony', 'sun']
a.insert(0, 'moom')
print(a)
③extend:一次性往列表后添加多个元素
a = ['tony', 'sun']
a.extend(['james', 'moom'])
print(a)
删除数据:
①remove:指定元素进行删除
a = ['tony', 'sun']
a.remove('tony')
print(a)
②pop:指定索引进行删除,默认删除最后一个元素
a = ['tony', 'sun', 'james']
res = a.pop()
print(a)
print(res)
③clear:清空列表中所有元素
a = ['tony', 'sun', 'james']
a.clear()
print(a)
修改数据:
通过索引指定位置进行修改
a = ['tony', 'sun', 'james']
a[0] = 'moom'
print(a)
查找元素对应的索引:
①index() 方法返回指定值首次出现的位置。
实例1:
fruits = ['apple', 'banana', 'cherry']
x = fruits.index("cherry")
实例2:
fruits = [4, 55, 64, 32, 16, 32]
x = fruits.index(32)
②find() 方法查找指定值的首次出现。
如果找不到该值,则 find() 方法返回 -1。
find() 方法与 index() 方法几乎相同,唯一的区别是,如果找不到该值,index() 方法将引发异常。
实例1:
单词 “welcome” 在文本中的什么位置?
查找指定字符串的索引位置(返回查找到的第一个)
txt = "Hello, welcome to my world."
x = txt.find("welcome")
print(x)
语法
string.find(value, start, end)
参数值
参数 | 描述 |
---|---|
value | 必需。要检索的值。 |
start | 可选。开始检索的位置。默认是 0。 |
end | 可选。结束检索的位置。默认是字符串的结尾。 |
实例1:
字母 “e” 在文本总首次出现的位置:
txt = "Hello, welcome to my world."
x = txt.find("e")
print(x)
实例2:
如果只搜索位置 5 到 10 时,字母 “e” 在文本总首次出现的位置:
txt = "Hello, welcome to my world."
x = txt.find("e", 5, 10)
print(x)
实例3:
如果找不到该值,则 find() 方法返回 -1,但是 index() 方法将引发异常:
txt = "Hello, welcome to my world."
print(txt.find("q"))
print(txt.index("q"))
③count() 方法返回具有指定值的元素数量。
实例:
返回数值 9 在列表中出现的次数:
points = [1, 4, 2, 9, 7, 8, 9, 3, 1]
x = points.count(9)
列表的复制:
copy() 方法返回指定列表的副本。
实例:
拷贝 fruits 列表:
fruits = ['apple', 'banana', 'cherry', 'orange']
x = fruits.copy()
内置id:查看数据的内存地址编号
li = ['tony', 'sun', 'james']
li2 = li.copy()
li3 = li
print(id(li))
print(id(li2))
print(id(li3))
注:赋值为同一数据,复制不是
排序
sort() 方法对列表进行升序排序。
参数值
参数 | 描述 |
---|---|
reverse | 可选。reverse=True 将对列表进行降序排序。默认是 reverse=False。 |
key | 可选。指定排序标准的函数。 |
实例1:
以字母顺序对列表进行排序:
cars = ['Porsche', 'BMW', 'Volvo']
cars.sort()
实例 2:
对列表进行降序排序:
cars = ['Porsche', 'BMW', 'Volvo']
cars.sort(reverse=True)
实例 3:
按照值的长度对列表进行排序:
# 返回值的长度的函数:
def myFunc(e):
return len(e)
cars = ['Porsche', 'Audi', 'BMW', 'Volvo']
cars.sort(key=myFunc)
实例 4:
根据字典的 “year” 值对字典列表进行排序:
# 返回 'year' 值的函数:
def myFunc(e):
return e['year']
cars = [
{'car': 'Porsche', 'year': 2005},
{'car': 'Audi', 'year': 2000},
{'car': 'BMW', 'year': 2019},
{'car': 'VW', 'year': 2011}
]
cars.sort(key=myFunc)
倒序:
①reverse() 方法反转元素的排序顺序。
实例:
反转 fruits 列表的顺序:
fruits = ['apple', 'banana', 'cherry']
fruits.reverse()
②[::-1]
fruits = ['apple', 'banana', 'cherry']
a = fruits[::-1]
print(a)