列表(List)
元素
列表中涉及的每一个数据(值),在python列表包容性比较强,不太计较数据类型,也就是说List里面什么类型( int /str/ boolen/ list 等)的数据都可以存放;
索引
即元素存放的位置 ,也就是元素在列表中放在第几位置,不过索引计数:从0 开始;
表示方法
[]
即:用[]
表示的数据为列表(List);
创建列表
空列表
list1 = []
单元素列表
list2 = ['first']
多元素列表
list3 = ['python', 'java', 'c#']
类型查看
list4 = ['python', 'java', 'c#']
print(type(list1))
list5 = ['python', 5, '88']
print(type(list2))
列表访问
正向
正索引:从前往后计数,从0开始计数,即最前面值的索引为:0;
print(list4[1]) #'java'
print(list4[2]) #'c#'
print(list4[4]) #IndexError: list index out of range
IndexError: list index out of range
:超出索引,数据中本来只有3个元素,索引只到2,现在是要去索引为4的值,这个值并不存在,所以会报错;
逆向
负索引:从后往前计数,从-1开始计数,即最后面值的索引为:-1;
print(list1[-1]) # -1 从后往前计算,倒数第一个
print(list1[-2])
print(list1[-3])
print(list1[-4]) # IndexError: list index out of range
列表切片
切片规则:
[a:b]
:
a:起始索引
b :结束索引,但是最后一个值取不到;
b-1 为最后一个值
demo:
list6 = ['python', 'java', 'c#', 'Ruby', 'js', 'html', 'css']
场景1:
print(list6[2:5])
#[):取头不取尾 ['c#', 'Ruby', 'js']
场景2:
print(list6[1:])
#从1至最后['java', 'c#', 'Ruby', 'js', 'html', 'css']
场景3:
print(list6[:4])
#['python', 'java', 'c#', 'Ruby']
场景4:
print(list6[-2:])
#['html', 'css']
列表改值
根据索引来修改列表中数值,可以是正索引,也可以是负索引:
list7 = ['python', 'java', 'c#', 'Ruby', 'js', 'html', 'css']
正索引
# 改值
list7[1] = 'go'
print(list1)
负索引
list7[-1] = 'go'
print(list1)
列表长度
len()
方法可以获取列表的长度;
# len():length 长度
print(len(list1))
列表遍历
list8 = ['python', 'java', 'c#', 'Ruby', 'js', 'html', 'css']
方法一
直接遍历列表中元素,直接拿值;
# 方法一:
for i in list8:
print(i)
方法二
间接遍历,通过遍历索引,根据索引再拿取数值
# 方法二
for i in range(len(list8)):
# print(i)
# print(list1[i])
print(i + 1, " : ", list8[i])
添加元素
添加方式一
append()
:方法实现列表元素的添加;
每次添加都是在列表的尾部添加
# 添加元素
# test = []
# test.append('abc')
# test.append(66)
# test.append('python')
#
# print(test) #['abc', 66, 'python']
添加方式二
insert()
,可以指定位置添加;
test.insert(1,88)
test.insert(-1,886)
print(test)
删除元素
删除元素常用的有四种方式:remove()
, del()
,pop()
,clear()
;
remove()
:移除指定元素:
# 删除元素 remove del pop clear
test.remove(886)
print(test)
del()
:根据索引删除元素:
del test[0]
print(test)
pop()
:从末尾做元素删除:
test.pop()
print(test)
test.pop(1)
print(test)
clear()
:清空列表:
print("before : ",test)
test.clear()
print('after: ',test)
元素校验
in
:列表中是否存在该元素,校验
单独校验
list9 = ['python', 'java', 'c#', 'Ruby', 'js', 'html', 'css']
if 'python' in list9:
print('pass')
人机交互元素校验
# in:列表中是否存在该元素,校验
list9 = ['python', 'java', 'c#', 'Ruby', 'js', 'html', 'css']
language = input("输入你想查找的内容:")
if language in list9:
print('pass')
else:
print('fail')
列表生成器:
一行代码完成所有工作
单层列表复制
从list1
复制到空列表list2
中
list1 = ['python', 'java', 'c#', 'Ruby', 'js', 'html', 'css']
list2 = []
# 方法一
for i in list1:
list2.append(i)
print('list2:', list2)
单层列表生成器实现列表复制
# 方法二:单层for循环生成器
list3 = [i for i in list1]
print('list3:', list3)
双层列表复制
list1 = ['python', 'java', 'c#', 'Ruby', 'js', 'html', 'css']
tmp = [1, 2, 3, 4]
# 方法一:
for i in list1:
for j in tmp:
print(i,j)
双层列表生成器实现列表复制
list1 = ['python', 'java', 'c#', 'Ruby', 'js', 'html', 'css']
tmp = [1, 2, 3, 4]
# 方法二:双层for循环生成器
list4 = [[i, j] for i in list1 for j in tmp]
print('list4:', list4)
print('len:',len(list4))
列表计数
count()
:计数,统计元素在列表中出现的次数
test = [999, 88, 66, 886, 88, 66, 12, 18, ]
# count():计数,统计元素在列表中出现的次数
print(test.count(88))
print(test.count('python'))
列表索引
index()
:指定值的第一个元素索引
# index:指定值的第一个元素索引
print(test.index('python'))
列表翻转
reverse()
test.reverse()
print(test)
列表排序
sort()
# sort:排序
test.sort()
print(test)
test.sort(reverse=False) #从小到大
print(test)
test.sort(reverse=True) #从大到小
print(test)
列表合并
# 两个list列表
l1 = [1, 2, 3, 4]
l2 = ['a','b','c','d']
# 连接 二合一
# [1, 2, 3, 4,'a','b','c','d']
合并一
# 方法一
l3 = []
for i in l1:
l3.append(i)
for i in l2:
l3.append(i)
print(l3)
合并二
# 方法二
l3 = l1 + l2
print(l3)
合并三
l1.extend(l2)
print(l1)
以上就是列表常用的一些方法,如果有不正确的,欢迎在下方评论区指正~~~