Python列表

一.可对列表进行的操作

1.值的访问、修改、添加以及删除

list_1 = ['a','b','c']
list_1[0] = 'r' #修改单个值,这里注意值修改之后list_1[0]的地址也随之变了
list_1 = ['e','f','g'] #整体赋值
list_1.append('g') #添加值,添加位置始终为列表末尾
list_1.insert(pos,'h') #插入值,pos为插入位置,省略pos将出错
del list_1[0],list_1[1] #删除list_1[0]、list_1[1]
list_1.pop(x) #删除x位置处的值并得到它,x是索引,如果不指定x则默认删除最后一个元素
list_1.remove('a') #删除值为'a'的元素并得到它,如果有多个,默认删除第一个

2.+、*、+=、in、以及切片

+:组合列表:

list_1 = [1,2,3]
list_2 = [4,5,6]
list_3 = list_1 + list_2
print(list_3)
#输出:
[1, 2, 3, 4, 5, 6]

*:复制列表:

list_1 = ['hi'] 
list_1 = list_1 * 3
print(list_1)
#输出: ['hi', 'hi', 'hi']

+= :拼接列表:

list_1 = [1,2,3]
list_1 += [4,5,6]
print(list_1)
#输出:
[1, 2, 3, 4, 5, 6]

in :判断元素是否在列表中:

>>> list_1 = [1,2,3]
>>> 1 in list_1
True

切片:截取列表

'''
这里多提以下切片的详细用法,之前的文章里面只说了切片有两个参数[start:end],其实
切片有三个参数,即[start:end:step],step可以理解为步长,即告诉Python以怎样的步长遍历
数据进而得到切片,只不过大部分情况下把step省略了,step被省略则默认step为1,即步长为1
'''

3.创建空列表

如果想创建一个占用空间但里面不存在值的列表该怎么做呢?

temp_list = [0] * 10 #创建占有10个空间的列表,并且每个列表元素初始化为0
temp_list = [None] * 10 #创建占有10个空间的列表,并且列表内为空,Python中None即空

4.一些小细节

Python中的列表是链式存储,并非顺序存储;
通过整体赋值得到的列表并非复制出的新列表,如果要复制列表就用切片;

二.嵌套

1.列表嵌套列表(二维列表)

list_1 = ['a','b','c']
list_2 = ['d','e','f']
list_3 = ['g','h','i']
list_z = [list_1,list_2,list_3]
print(list_z)# [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]
print(list_z[1][1])# e
print(list_z[0]) # ['a', 'b', 'c']

利用列表解析生成二维列表:
列表解析在我另一篇文章中有讲解,这里再简单提一下:

list_1 = [value**2 for value in range(1,6)]
print(list_1)# [1, 4, 9, 16, 25]
#如上,列表解析可以让for循环生成列表的方式更简洁,前面的value表达式控制每一个生成的数的变形

生成二维列表:

list_1 = [[col**2 for col in range(1,5)] for row in range(1,5)]
print(list_1)# [[1, 4, 9, 16], [1, 4, 9, 16], [1, 4, 9, 16], [1, 4, 9, 16]]
#二维列表其实就是把单纯的列表解析中的第一个value表达式替换为又一个列表解析

2.列表嵌套元组

3.列表嵌套字典

三.列表常用函数&方法

函数:

  • len() :获取列表长度;
  • max() :返回列表最大值;
  • min()
  • list() :将元组转换为列表;

方法:

  • list.append(obj) :在列表末尾添加对象obj,obj不局限于数值和字符串;

  • list.count(obj) :统计元素obj在列表中出现的次数;

  • list.index(obj) :查找obj第一次在列表中出现的位置,返回索引;

  • list.insert(index,obj):在index位置插入对象obj;

  • list.pop(index=-1) :删除index位置处的值并得到它,index默认为-1;

  • list.remove(obj) :删除列表中值为obj的第一个匹配对象;

  • list.reverse() :永久反转列表;

  • list.reversed() :临时反转列表;

  • list.sort() :永久对列表排序;

  • list.sorted() :临时对列表排序;

  • list.copy() :复制列表;

  • list.clear() :清空列表;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值