Pythhon列表

本文详细介绍了Python列表的性质、运算、下标获取、切片、循环遍历、增删改操作,以及相关方法如append、insert、extend、index、remove、pop等。此外,还探讨了列表推导式及其应用场景。

一.列表

性质:
1.列表,容器符号:[],数据类型:list
2.列表是有序的数据类型(每个元素有自己的固定位置,‘下标’)
3.列表是可变的(对列表中元素进行增删改操作)
4.列表中可以保存任意类型的数据
5.列表中允许出现重复元素

二.列表的运算
list1 = [] # 空列表
list2 = list() # 通过构造语法创建空列表
print(list1, list2, list1 == list2)

list3 = [1, 1.1, True, ‘abcd’, [123], None, (1, 2, 3), {‘name’: 20}, {1, 2, 3}]
print(list3)

a.列表的拼接(生成一个新列表)
print(list3 + list3)
b. 列表的重复
print(list3 * 5)

c.成员运算:in、not in
print(‘abcd’ in list3)
print(‘bcda’ not in list3)
print(1 in list3)
print([1] in list3)

print(‘-------------------分割线-----------------------’)

d.比较运算:列表之间可以比较大小
容器形数据类型比较大小比较的是相同位置的元素的大小
list4=[1,2,3,4]
list5=[1,2,4,5]
print(list4<list5)

列表

list1 = [‘英雄联盟’, ‘CS:GO’, ‘超级马里奥’, ‘元神’, ‘魂斗罗’, ‘王者荣耀’, ‘PUBG’]

列表中每个元素都有自己的位置(下标)
下标分为正向下标、负向下标
正向下标:从左到右数,从0开始
负向下标: 从右向左,从-1开始

二、通过下标获取元素:有序容器[下标数字]
print(list1[2] == list1[-5])
print(list1[2])
print(list1)

三、切片:获取有序容器中某一部分元素,得到的结构是和原容器相同类型的容器
有序容器[M:N:step]—>左闭右开[M,N)
切片中正向下标和负向下标可以混用
切片中开始和结束下标都不写,表示从头到尾
开始不写,结束写,表示从开头取到指定下标;反之,从指定下标取到末尾
切片只有一个冒号,代表step=1
注意:切片参考range()

print(list1[0:7])
print(list1[0:7:3])
print(list1[1:-2:3])
print(list1[-1:-8:-1])
print(list1[:])

print(list1[::-1])
print(list1[::-3])

list1 = [‘英雄联盟’, ‘CS:GO’, ‘超级马里奥’, ‘原神’, ‘魂斗罗’, ‘王者荣耀’, ‘PUBG’]
1.获取[‘英雄联盟’,‘PUBG’]
print(list1[0:8:6])
2.获取’原神’
print(list1[3])
3.获取[‘王者荣耀’,‘原神’,‘CS:GO’]
print(list1[-2:-7:-2])
4.获取[‘魂斗罗’,‘原神’,‘超级马里奥’]
print(list1[-3:-6:-1])

通过下标获取元素,下标不能越界。
print(list1[100])
在切片中允许下标越界
print(list1[1:1000000])

循环遍历

  1. 直接遍历
    list1=[‘A’,‘B’,‘C’,‘D’]
    for i in list1:
    print(i)
  2. 间接遍历: 通过下标遍历

len():获取有序容器的长度
print(len(list1))
for index in range (len(list1)):
print(f’{index}—>{list1[index]}')

  1. enumerate() :能够将列表中的每一个元素及其下标放到一个元组中,多个元组组成一个可迭代对象
    可迭代对象(能够做遍历)
    print(enumerate(list1))
    for content in enumerate(list1):
    print(content)

    list1 = [‘Java’,‘Python’,‘C’]

列表的增删改


append :追加,向列表的末尾添加元素
list1.append(‘HTML’)
print(list1)
insert : 插入,向列表的任意位置添加元素
list1.insert(0,‘c++’)
extend: 追加,从一个容器中将所有元素添加到列表中
list1.extend(‘123’)
list1.extend([‘Golongh’,‘Ui’])
print(list1)


有序容器[下标]= 值
list1[5]= ‘Java’
print(list1)


del:del有序容器[下标]
del list1[6]
print(list1)
remove:根据元素删除,从左向右删除,如果元素重复,一次只能删除一个
list1.remove(‘3’)
list1.remove(‘Java’)
print(list1)
pop: 如果不给pop指定元素,删除的是列表中最后的一个元素:或者给pop指定下标
pop方法可以告诉你删除的是那个元素
list1.pop()
print(list1)
print(list1.pop(0))
print(list1)

列表的相关方法

查找列表中元素:index
index的方法默认从左到右查找,找到元素立即停止查找,返回下标
可以指定index 开始查找元素位置。index 找不到会报错
list1= [‘Java’,‘Python’,‘Java’]
result = list1.index(‘Java’)
print(result)
result1=list1.index(‘Java’,1)
print(result1)

二.sum ,max ,min - 操作对象必须是数字列表(列表中的元素全是数字)
num_list=[1,2,3,4,5,]
print(sum(num_list))
print(max(num_list))
print(min(num_list))

三.reverse:将列表倒序,直接对列表本身修改
num_list=[1,2,3,4,5,]
num_list.reverse()

四、sort 、sorted:对列表排序
sort 默认排序为升序,修改列表本身。如果reverse=True,降序排序
list2=[2,5,1,7,0]
list2.sort()
print(list2)
list2.sort(reverse=True)

sorted: 默认升序排序, 如果resever=Ture,降序排序
list3=[2,5,1,7,0]
print(sorted(list3),list3)
print(sorted(list3,reverse=True))

五.count:统计某元素的次数
list3=[2,5,1,7,0]
print(list3.count(2))
print(list3.count(9))

列表推导

列表推导式(列表生成式)
生成有元素的列表(在某些场景下能代替append)
性能比较:列表推导式>append

语法
[表达式 for 变量 in 容器]

将100以内5的倍数 添加到列表中
import random

list =[]
for i in range (0,101,5):
list.append(i)
print(list)

list1 = [ i for i in range(0,101,5)]
print(list1)

将某个元素在列表中重复N此
如果for中变量没有实际意义,可以使用下划线“_”代替
list3=[[1,2,3]for _ in range(10)]
print(list3)

语法:二
[表达式 for 变量 in 容器 if 条件]
list4=[ i for i in range (101)if i%5==0]
print(list4)

list5=[True if i%5==0 else False for i in range(11) ]
print(list5)
print(‘-----------------------------分割线--------------------------------’)

语法三
[表达式 for 变量1 in 容器1 for 变量2 in 容器2 ]
list6=[ f’{i}{j}={ij}’ for i in range(1,10) for j in range(1,i+1)]
print(list6)
import random

csore=[[random.randint(0,1) for i in range(3)] for _ in range(5) ]
print(csore)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值