06 Python学习之数据类型-list

列表是用中括号扩起来,以逗号分隔

列表的格式:
name = ['Tom', 'Dave', 'lily']

列表值的查询和修改:

in 判断一个值是否在列表中

names = ['Tom', 'Dave', 'Lily']
print('Tom' in names)			# bool值为True说明在列表中

运行结果:

True

从列表中取值

从列表中取值,我们可以用下标的方法,如果要取全部的值我们可以用for循环

例1:

names = ['Tom', 'Dave', 'Lily']
print(names[2])

运行结果:

Lily

例2:

names = ['Tom', 'Dave', 'Lily']
for name in names:
    print(name)

运行结果:

Tom
Dave
Lily

修改列表的值

修改列表的值也是用下标,直接赋值即可

例1:

names = ['Tom', 'Dave', 'Lily']
print('修改前:', names)
names[1] = 'Tomas'
print('修改后:', names)

运行结果:

修改前: ['Tom', 'Dave', 'Lily']
修改后: ['Tom', 'Tomas', 'Lily']

列表的常用方法:

append

append 用于向列表添加内容,添加到列表的尾部

例1:

names = ['Tom', 'Dave', 'Lily']
names.append('Tomas')
print('添加后的列表内容是:', names)

运行结果:

['Tom', 'Dave', 'Lily', 'Tomas']

clear

清空列表的内容,使列表称为一个空列表,没有任何元素

例1:

names = ['Tom', 'Dave', 'Lily']
names.clear()
print('列表内容是:', names)

运行结果:

列表内容是: [ ]

count

count 统计给定元素在列表中的个数
例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony', 'Tom']
count = names.count('Tom')
print('Tom在列表中的个数是:', count)

运行结果:

Tom在列表中的个数是: 2

copy

copy是复制一个已存在的列表,并返回复制的列表,这个列表是浅复制,即如果列表的元素是引用类型,只复制地址,而不会将引用的指向复制,深浅复制查看后面内容

例1:

names = ['Tom', 'Dave', 'Lily']
copy_names = names.copy()
print('复制的列表内容是:', copy_names)

运行结果:

复制的列表内容是: ['Tom', 'Dave', 'Lily']

extend

将一个列表加入另一个列表中,相当于 list1 + list2

例1:

names = ['Tom', 'Dave', 'Lily']
new_names = ['Tomas', 'Tony']
names.extend(new_names)				# 将new_names列表的内容,加入到names列表中
print('扩展后的列表内容是:', names)

运行结果:

列表内容是: ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']

例2:

names = ['Tom', 'Dave', 'Lily']
new_names = ['Tomas', 'Tony']
print('相加后的列表内容是:', names + new_names)

运行结果:

相加后的列表内容是:['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']

index

获取元素的下标

例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
index = names.index('Dave')
print('Dave的下标是:', index)

运行结果:

Dave的下标是:1

insert

在指定位置向列表插入内容,插入需要知道要插入位置的下标
语法:
s.insert(index, value)

例1:

names = ['Tom', 'Dave', 'Lily']
names.insert(1, 'Tomas')				# 在下标为 1 的位置插入
print('插入后的列表是:', names)

运行结果:

插入后的列表是:['Tom', 'Tomas', 'Dave', 'Lily']

pop

从列表中,删除一个指定下标处的元素,如果不指定下标,默认是最后一个,如果下标不存在,会报 IndexError 错误
例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
ret = names.pop()
print('删除后的列表是:', names)
print('删除的元素是:', ret)

运行结果:

删除后的列表是: ['Tom', 'Dave', 'Lily', 'Tomas']
删除的元素是: Tony

remove

remove删除指定的内容,如果内容不存在报 ValueError 错误

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
names.remove('Lily')
print('删除后的列表是:', names)

运行结果:

删除后的列表是: ['Tom', 'Dave', 'Tomas', 'Tony']

reverse

reverse是将列表逆序显示,再次逆序将还原为未逆序前的状态
例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
names.reverse()
print('逆序后的列表内容是:', names)

运行结果:

逆序后的列表内容是: ['Tony', 'Tomas', 'Lily', 'Dave', 'Tom']

sort

sort对列表按ASCII表顺序进行排序,排序后会改变原列表的顺序, sort有两个关键字参数:
1、key:指定排序规则,默认是None
2、reverse:是否逆序,默认是False

例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
print('排序前列表顺序是:', names)
names.sort()
print('排序后列表顺序是:', names)

运行结果:

排序前列表顺序是: ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
排序后列表顺序是: ['Dave', 'Lily', 'Tom', 'Tomas', 'Tony']

例2:

names = ['Tom', 'Dave', 'Lily', 'tom', 'Tony']
names.sort(key=str.lower)
print('指定key排序后是:', names)

names = ['Tom', 'Dave', 'Lily', 'tom', 'Tony']
names.sort()
print('不指定key排序后是:', names)

运行结果:

指定key排序后是: ['Dave', 'Lily', 'Tom', 'tom', 'Tony']
不指定key排序后是: ['Dave', 'Lily', 'Tom', 'Tony', 'tom']

列表的切片

指定开始和结束位置切片

指定位置切片,左闭右开,即结果中包含start位置的元素,不包括end处的元素
例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
sub_name = names[1:3]
print(sub_name)

运行结果:

['Dave', 'Lily']

指定开始不指定结束位置切片

不指定结束位置,即切到列表末尾

例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
sub_name = names[2:]
print(sub_name)

运行结果:

['Lily', 'Tomas', 'Tony']

指定不指定开始,指定结束位置切片

不指定开始位置,即从列表第一个元素开始

例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
sub_name = names[:3]
print(sub_name)

运行结果:

['Tom', 'Dave', 'Lily']

指定切片步长

指定步长可以按照步长设置进行取出相应元素

例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
sub_name = names[::2]
print(sub_name)

运行结果:

['Tom', 'Lily', 'Tony']

切片复制列表

不指定开始和结束位置,并且步长为1时(步长为 1 ,可以省略),即复制列表
例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
sub_name = names[:]			# 相当于复制列表
print(sub_name)

运行结果:

['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']

del

del删除列表元素:
例1:

names = ['Tom', 'Dave', 'Lily', 'Tomas', 'Tony']
del names[::3]		# 从第一个开始每隔3个元素删除一个,因为步长为3
print(names)

运行结果:

['Dave', 'Lily', 'Tony']

特殊用法

用乘法重复列表内容

例1:

names = ['Tom', 'Dave', 'Lily']
names *= 3
print(names)

运行结果:

['Tom', 'Dave', 'Lily', 'Tom', 'Dave', 'Lily', 'Tom', 'Dave', 'Lily']

你可能感兴趣的:(06 Python学习之数据类型-list)