Python列表知识汇总

Python列表知识汇总

创建列表

#列表的创建

#空列表---------------Start---------
List_NULL = []
print(type(List_NULL))
#输出:<class 'list'>
#空列表---------------End---------

#数字列表---------------Start---------- 
List_NUM = [1,2,3,4,5,6]
print(List_NUM)
#输出:[1, 2, 3, 4, 5, 6]-----------
#数字列表---------------End---------

#列表可以存储任意对象--------Start--------
List_M = [1,'python',None,True,False,[1,2,3],{'电影名':'王者归来'}]
print(List_M)
#输出:[1, 'python', None, True, False, [1, 2, 3], {'电影名': '王者归来'}]
#输出---------------End---------

列表索引

#n个元素的列表索引的范围:Index 属于 [-n,n-1]
list_nu = [1,2,3,4,5,6,7,8,9]

if list_nu[0] == list_nu[-9]: # 都是1
    print('列表的第一个元素(索引0)同时也是逆序第n个元素(索引-n)')

if list_nu[-1] == list_nu[9-1]: # 都是9
    print('列表的第n个元素(索引n-1),同时也是列表的逆序第一个元素-1') 

#n个元素的列表索引的范围:Index 属于 [-n,n-1]
for i in range(-9,9):
    print('i={}: '.format(i) +'list_nu[{}]={}'.format(i,list_nu[i]))

切片

从现有列表中获取一个子列

#切片
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print(subject_list)

#语法: 列表[起始:结束:步长]
#例如: subject_list[n:m] 
# 获取列表中,第n+1个元素,到第m个元素即会包括起始位置元素,不包括结束位
print(subject_list[0:2]) #输出['数学','语文']
print(subject_list[2:4])#输出['物理','化学']
print(subject_list[3:5])#输出['数学','语文']

#省略起始位置,等价于从第一个作为开始
print(subject_list[:3]) #输出['数学','语文','物理']

#省略结束位置,等价于到最后一个元素
print(subject_list[2:]) #输出['物理','化学','生物','地理','历史','政治']
print(subject_list[:]) #都省略则为全列表

步长

列表步长不能为0,但是可以为负数;如果为负数就是为倒叙方式获取。

subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print(subject_list)
print(subject_list[::-1])

通用操作

# 符号+表示列表合并
list_demo = [1,2,3] + [4,5]
print(list_demo)
#列表乘以,表示新列表重复列表所有元素的次数
list_demo = list_demo*2
print(list_demo)
#输出结果:
#[1, 2, 3, 4, 5]
#[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

#in用来判断元素是否在列表中
list_w = ['超人','蜘蛛侠','绿箭侠']
print('超人' in list_w) # True
print('擎天柱' in list_w) # False

# not in 元素是否不在列表中
print('超人' not in list_w) # False
print('擎天柱' not in list_w) # True

list_num = [-1,1,2,3,4,5,9]
#len 获取列表长度(列表元素个数)
print(len(list_num)) # 7
print(max(list_num)) # 9
print(min(list_num)) # -1

#列表元素出现次数
# 在列表的i到j中第一次出现x的索引
list_demo = ['李世民','李时珍','李世民','李世民','李隆基','李小龙','李世民','李睿','李世民']

# index函数是获取指定元素在列表中的位置

#第一次出现的位置
print(list_demo.index('李世民')) # 0

#列表中起始位置,第一次出现目标元素的索引值
print(list_demo.index('李世民',1)) # 2

#列表中起始位置到结束位置,第一次出现目标元素的索引值
print(list_demo.index('李世民',7,9))
#  s.index(x[, i[, j]]) 即为 s.index[x,起始位置,结束位置] 
#   列表中从起始位置(包括起始位置)到结束位置(不包括结束位置)第一次出现的索引

# 指定元素出现的次数
print(list_demo.count('李世民'))

在这里插入图片描述
python官网学习
https://docs.python.org/3.8/
python官网列表知识学习
https://docs.python.org/3.8/library/stdtypes.html#sequence-types-list-tuple-range

列表元素的增删改查

subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
#修改: 通过索引改元素
subject_list[5] = '音乐'
print(subject_list)  #['数学', '语文', '物理', '化学', '生物', '音乐', '历史', '政治']

#删除del
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
del subject_list[4] 
print(subject_list) # ['数学', '语文', '物理', '化学', '地理', '历史', '政治']


#通过切片来修改列表
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
subject_list[0:3] = 'abcdwe'
print(subject_list) #['a', 'b', 'c', 'd', 'w', 'e', '化学', '生物', '地理', '历史', '政治']

subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
# list[n:n] 在索引为2的元素前面增加元素
subject_list[2:2:1] = ['美术1'] 
print(subject_list) #['数学', '语文', '美术1', '物理', '化学', '生物', '地理', '历史', '政治']

print(subject_list[3:2:-1]) # ['物理']
subject_list[3:2:-1] = ['美术2'] # ['数学', '语文', '美术1', '美术2', '化学', '生物', '地理', '历史', '政治']
print(subject_list)

#当设置了步长,那么元素必须和切片的数量一致
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
print(subject_list[1:6:2])
subject_list[1:6:2] = ['美术','德育','编程'] 
print(subject_list) 

#切片删除元素
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)

subject_list[:3] = []
print(subject_list)

#不可变序列字符串,无法通过索引修改
s='python'
print(s[:]) # python
print(s[1:2]) # y
#s[0] = 'P'
#print(s) #TypeError: 'str' object does not support item assignment

#可以牵制转换为列表
s='python'
print(s)
s = list(s)
s[0] = 'P'
print(s)

列表的方法

subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)

# append() 后面追加新元素
subject_list.append('体育')
print(subject_list)

#insert() 向列表指定位置插入元素即在目标索引元素前面增加新元素
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
subject_list.insert(2,'物理1')
print(subject_list)

#extend() 使用新的序列来拓展 
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)

subject_list.extend(['法语']) #等价于 subject += '法语'
print(subject_list) #['数学', '语文', '物理', '化学', '生物', '地理', '历史', '政治', '法语']
subject_list.extend(['俄语','日语']) 
print(subject_list)#['数学', '语文', '物理', '化学', '生物', '地理', '历史', '政治', '法语', '俄语', '日语']

#clear() 清除列表
#subject_list.clear()

#pop()根据索引删除并返回元素
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
subject_list.pop(5)
print(subject_list) # ['数学', '语文', '物理', '化学', '生物', '历史', '政治']

#如果pop不传递索引值就删除最后一个元素
subject_list.pop()
print(subject_list) # ['数学', '语文', '物理', '化学', '生物', '历史']

#remove() 删除指定值的元素(只删除掉第一个指定元素)
list_demo = ['李世民','李时珍','李世民','李世民','李隆基','李小龙','李世民','李睿','李世民']
print(list_demo)

list_demo.remove('李世民')
print(list_demo) #['李时珍', '李世民', '李世民', '李隆基', '李小龙', '李世民', '李睿', '李世民']

# reverse() 翻转列表(把列表变成逆序)
subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)
subject_list.reverse()
print(subject_list) # ['政治', '历史', '地理', '生物', '化学', '物理', '语文', '数学']

#sort() 队列表进行排序

list_m = list('17843290643388')
print(list_m)  # '1', '7', '8', '4', '3', '2', '9', '0', '6', '4', '3', '3', '8', '8']
list_m.sort()  #顺序为从小到大 等价于 list_m.sort(reverse=Flase)
print(list_m)  # ['0', '1', '2', '3', '3', '3', '4', '4', '6', '7', '8', '8', '8', '9']

list_m = list('17843290643388')
print(list_m)  # ['1', '7', '8', '4', '3', '2', '9', '0', '6', '4', '3', '3', '8', '8']
list_m.sort(reverse=True)
print(list_m)  # ['9', '8', '8', '8', '7', '6', '4', '4', '3', '3', '3', '2', '1', '0']

遍历列表

subject_list = ['数学','语文','物理','化学','生物','地理','历史','政治']
print('原列表:')
print(subject_list)

for i in subject_list:
    print(i,end=' ') #数学 语文 物理 化学 生物 地理 历史 政治
print(end='\n')

#range(start,stop,step)
#默认从0开始,如range(6) #步长默认为1
print(list(range(6)))
print(type(range(6)))
for i in range(6):
    print(subject_list[i],end=' ')
print(end='\n')

print(list(range(0,10,2)))
print(list(range(1,10,2)))
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Narutolxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值