Python列表

1、列表举例

# 列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表中的数据项通过逗号","分隔,通过方括号“[]”括起来所有的数据项。
[1,2,3,4,5]
['1','2','3','4','5']
["a","b","c","d","e"]
['python','C','C++','2024','1']
# 列表元素中的每个元素仍是列表则为二维列表。
[[1,2,3,4,5],['1','2','3','4','5'],["a","b","c","d","e"]]

2、列表的创建和删除

# 创建列表
num_list = [1,2,3,4,5]
str_list1 = ['1','2','3','4','5']
str_list2 = ["a","b","c","d","e"]

# 创建空列表
list1 = []
print(len(list1)) # len()方法可以判断列表的长度

# 创建数值列表
list2 = list(range(0,9))
print(list2)

# del删除列表
num_list = [1,2,3,4,5]
del num_list

3、列表的访问

num_list = [1,2,3,4,5]

# 从头部开始索引,首个元素为0,依次类推
print(num_list[0]) # 输出结果为1
print(num_list[3]) # 输出结果为4

# 从尾部开始索引,首个元素为-1,依次类推
print(num_list[-1]) # 输出结果为5
print(num_list[-3]) # 输出结果为3

# for循环实现列表遍历
str_list1 = ['1','2','3','4','5']
for element in str_list1:
    pirnt(element)

4、列表中添加、删除、修改元素

# append()方法添加元素,在列表的尾部添加元素
str_list1 = ['1','2','3','4','5']
print(str_list1)
str_list1.append('6')
print(str_list1)

# insert()方法添加元素,在列表指定位置添加元素。注意的是如果列表元素过多,会影响处理速度
str_list1 = ['1','2','3','4','5']
print(str_list1)
str_list1.insert(5,'6')
print(str_list1)

# extend()方法添加元素,可以将另一个迭代对象的所有元素添加至该列表对象尾部。
str_list1 = ['1','2','3','4','5']
id(str_list1)
str_list1.extend(['6','7'])
id(str_list1)
print(str_list1)
# id()方法操作后结果是一样的,extend()方法是将目标列表的所有元素添加至本列表的尾部,属于原地址操作,不创建新的列表对象。

# "+"运算符添加元素
str_list1 = ['1','2','3','4','5']
id(str_list1)
str_list1 = str_list1 + ['6','7']
id(str_list1)
print(str_list1)
# id()方法操作后结果是不同的,"+"添加元素后,内存地址发生了变化,这是因为添加新的元素时,创建了一个新的列表,并把原列表的元素和新元素依次复制到新列表的内存空间。当列表中的元素较多时,该操作速度会变慢。

# "*"运算符添加元素,通过和一个整数进行"*"运算,然后复制原列表中的元素
str_list1 = ['1','2','3','4','5']
id(str_list1)
str_list1 = str_list1 * 3
id(str_list1)
print(str_list1)

# del语句删除列表中的元素
str_list1 = ['1','2','3','4','5']
del str_list1[0]
print(str_list1)

# pop()语句删除列表中的元素
str_list1 = ['1','2','3','4','5']
str_list1.pop()
print(str_list1)

# 使用remove()根据值删除元素
str_list1 = ['1','2','3','4','5']
str_list1.remove(4)
print(str_list1)

# 列表元素修改
str_list1 = ['1','2','3','4','5']
str_list1[0] = '0'
print(str_list1)

5、列表的切片

切片操作是访问序列中元素的一种方法,切片操作不是列表特有的,Python中的有序序列(如字符串、元组)都支持切片操作。切片操作返回结果类型和切片对象类型一致,返回的是切片对象的子序列。

# 列表的切片语法格式如下:
# listname[start:end:step]
# 其中,listname:列表的名称
#      start:切片起点的位置,默认为0
#      end:切片终点的位置,默认为列表终点
#      step:步长,默认为1

str_list2 = ["a","b","c","d","e"]
print(str_list2[1:3]) # 返回值为['b', 'c'],注意:从1开始索引切片,不包括索引3的位置 
print(str_list2[:3]) # 返回值为['a', 'b', 'c'],注意:从0开始索引切片,不包括索引3的位置
print(str_list2[1:]) # 返回值为["b","c","d","e"],注意:从1开始索引切片,直到列表的结尾,步长为1
print(str_list2[1::2]) # 返回值为["b","d"],注意:从1开始索引切片,直到列表的结尾,步长为2
print(str_list2[:]) # 返回值为["a","b","c","d","e"],注意:从0开始索引切片,直到列表结尾,步长为1
print(str_list2[::]) # 返回值为["a","b","c","d","e"],注意:从0开始索引切片,直到列表结尾,步长为1
print(str_list2[::-1]) # 返回值为['e', 'd', 'c', 'b', 'a'],注意:从列表结尾开始索引切片,直到列表的开始,步长为1,反着切片。
print(str_list2[:1:-1]) # 

6、列表推导式

列表推导式可以利用range对象、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。

# 列表推导式的语法格式如下:
# [表达式for迭代变量in可迭代对象[if条件表达式]]
# 其中,[if条件表达式]不是必须的,可以使用,也可以省略

# 利用0到9的平方生成一个整数列表,不包含[if条件表达式]
a_range = range(10)
a_list = [x*x for x in a_range]
print(a_list) # 返回值为[0,1,4,9,16,25,36,49,64,81]
# 利用0到9的平方生成%2等于0的整数列表,包含[if条件表达式]
b_list = [x*x for x in a_range if x%2 == 0]
print(b_list) # 返回值为[0,4,16,36,64]
# 包含两重循环的列表推导式
c_list = [(x,y) for x in range(3) for y in range(2)]
print(c_list) # 返回值为[(0,0),(0,1)(1,0),(1,1),(2,0),(2,1)]
# 包含三重循环的列表推导式
d_list = [[x,y,z] for x in range(2) for y in range(2) for z in range(2)]
print(d_list) # 返回值为[[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]]

7、列表的其他相关方法

# 获取指定元素首次出现的下标
str_list1 = ['1','2','3','4','5']
index1 = str_list1.index('3')
print(index1)

# 获取指定元素出现的次数
str_list1 = ['1','2','3','4','5','1']
counter1 = str_list1.count('1')
print(counter1)

# 统计数值列表的元素和
num_list = [1,2,3,4,5]
total = sum(num_list)
print(total)

# 对列表的元素排序
num_list = [1,3,2,5,4]
num_list.sort() # 默认升序排列
print(num_list)

num_list = [1,3,2,5,4]
num_list.sort(reverse = True) # 降序排列
print(num_list)

# 判断列表中是否有指定的值
str_list1 = ['1','2','3','4','5']

result = '0' in str_list1
print(result)

result = '0' not in str_list1
print(result)

result = str_list1.count('0') # 返回值为大于0的数,表示数存在;返回值为0,则表示列表中元素不存在
print(result)

result = str_list1.count('0') # 如果元素在列表中,就会返回值第一次出现的位置,否则就会抛出错误。 
print(result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值