欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python列表的基本操作与功能

程序员文章站 2024-01-06 11:39:16
...

列表的基本操作与功能

一.基本操作

1. 创建列表

一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开。列表很包容,各种类型的数据(整数/浮点数/字符串)无所不能包。

ages = [1,2,3,4,5,6]  
age2 = ['1', '2', '3', '4','adf',[1,23,4]]
# 列表内的元素可以是不同类型
ages3 = [x for x in range(1,6)]  # 列表生成式 [1,2,3,4,5,6]
ages4 = [i*i for i in range(1,4)] #[1,4,9]

2.列表的下标

列表的顺序一般是从左往右,下标从0开始计数,倒序从-1开始

ages = [1,2,3,4,5,6] 
print(ages[0])  # 1
print(ages[1])  # 2
print(ages[5])  # 6
# print(ages[6])  # Indexerror: list index out of range
print(ages[-1]) # 6  # 倒数第一个
print(ages[-2]) # 5  # 倒数第二个

3.列表的长度

长度一般都用len()函数进行计算

ages = [1,2,3,4,5,6] 
print(len(ages))  # 6

4.遍历列表

遍历列表一般使用for 循环

ages = [11,22,33,44,55]
for n in ages:
    print(n)    # 逐个打印输出元素
    
for i in range(len(ages)):
    print(i)    # 得到每个元素的下标
    
for i in range(len(ages)):
    print(i, ages[i])  # 输出元素下标,以及对应元素
# enemerate(): 枚举/列举  
for i,n in enumerate(ages):
    print(i, n)  # 得到下标以及元素
    
for i in range(4,-1,-1): 
    print(i,ages[i])   # 从后往前遍历
     

5.切片

切片,截取 [start:stop:step] => 范围[start,stop)

ages = [1,2,3,4,5,6,7,8,9]
print(ages[:])  #  取所有  [1,2,3,4,5,6,7,8,9]
print(ages[3:])  # [4, 5, 6, 7, 8, 9]
print(ages[:4])  #[1, 2, 3, 4]
print(ages[4:7])  #[5, 6, 7]
print(ages[::-1])  # 倒序 [9, 8, 7, 6, 5, 4, 3, 2, 1]
print(ages[::2])   # 隔2  [1, 3, 5, 7, 9]
print(ages[4:1:-1])  #   [5, 4, 3]

6. 重复

print([1,2,3]*3)  #  [1, 2, 3, 1, 2, 3, 1, 2, 3]

7. 判断列表成员

ages = [1,2,3,4,5,6,7,8,9]
print(4 in ages)  # True
print(4 not in ages) # False

8.合并列表

print([1,2,3] + [4,5,6])  # [1, 2, 3, 4, 5, 6]

9.删除列表

ages = [1,2,3,4,5,6,7,8,9]
del ages # 
print(ages)   # ages = []

二. 列表的功能

1.增加

append(n):在列表的末尾插入一个元素
insert(i, n) :在列表的指定下标位置插入元素
extend() :将另一个列表中的每一个元素都添加到列表的末尾

# append()  在列表的末尾插入一个元素
nums = [2,3,4]
nums.append(5)
print(nums)  # [2, 3, 4, 5]
# insert(i, n) :在列表的指定下标位置插入元素
nums = [2,3,4]
nums.insert(0, 3)  
print(nums) # [3,2,3,4]
# extend()  :将另一个列表中的每一个元素都添加到列表的末尾
nums = [2, 3, 4]
nums.extend([5,6,7])  #[2, 3, 4, 5, 6, 7]
print(nums)

2.删除元素

# pop(i): 删除对应下标元素
list1 = [2, 3, 4, 5, 6, 7]
list1.pop()  # [2, 3, 4, 5, 6]  不写参数默认删除最后一个
list1.pop(2) #  [2, 3, 5, 6]  # 在新列表上删除下标为2的元素
s = list1.pop(2) # pop()有返回值,返回的是删除的那个元素
# remove(n): 删除指定的第一个元素
nums = [1,2,2,2,2,3,3,4]
nums.remove(2)   # [1, 2, 2, 2, 3, 3, 4]
print(nums)
# 统计指定元素在列表中的出现次数,删除重复元素
nums = [1,2,2,2,2,3,3,4]
for _ in range(nums.count(2)):  # 计算2出现的次数
    nums.remove(2)    # 删除元素2

print(nums)
# index()  :找到列表中第一次出现指定元素的下标,如果不存现在则报错
l = [1,2,3,2,2,4,5]

# del : 删除不彻底,不能从内存里删除
nums = [1,2,3,4,5,6,7]
# nums2 = nums
# del nums
# print(nums2)
del nums[2:5]
print(nums)

# clear():清空列表
nums = [1,2,3,4,5,6,7]
nums.clear()
print(nums)  # []

3.数学功能操作

ages = [1, 3, 4, -6, 5, 88, 2]
print(max(ages))   # 最大数  88
print(min(ages))   # 最小数   -6
print(sum(ages))   # 求和 97

4.排序

sort(): 升序,从小到大进行排序,会改变源列表

sort(reverse=True): 降序,会改变源列表

#sort(): 升序,从小到大进行排序,会改变源列表
ages = [1, 3, 4, -6, 5, 88, 2]
ages.sort()  # 升序排列
print(ages)  # [-6, 1, 2, 3, 4, 5, 88]

#sort(reverse=True): 降序,会改变源列表
ages3 = [1, 3, 4, -6, 5, 88, 2]
ages3.sort(reverse=True)  # 理解为先升序排列然后倒序
print(ages3)  # [88,5,4,3,2,1,-6]

# sorted():升序,不会改变源列表  非列表函数
ages3 = [1, 3, 4, -6, 5, 88, 2]
ages4 = sorted(ages3)  # [-6, 1, 2, 3, 4, 5, 88]
print(ages4)

倒序 reverse() 会改变源列表

reversed() 不会改变源列表

#  倒序 reverse() 会改变源列表
ages = [1, 3, 4, -6, 5, 88, 2]
# print(ages[::-1])
ages.reverse()
print(ages)

# reversed() 不会改变源列表
ages = [1, 3, 4, -6, 5, 88, 2]
ages3 = reversed(ages)
print(ages, list(ages3))

5.可变数据

列表属于可变类型数据,其赋值是有关联的

nums1 = [1,2,3]
nums2 = nums1
nums1[1] = 99
print(nums1, nums2)  # [1, 99, 3] [1, 99, 3]

6.拷贝

# 拷贝
# 浅拷贝,复制
nums1 = [1,2,3]
nums2 = nums1.copy()
nums1[1] = 99
print(nums1, nums2)  # [1, 99, 3] [1, 2, 3]

nums1 = [1,2,3,[123,6,7]]
nums2 = nums1.copy()
nums1[-1][1] = 66
print(nums1, nums2)  #[1, 2, 3, [123, 66, 7]] [1, 2, 3, [123, 66, 7]]


# 深拷贝/深复制
import copy
nums3 = [1,2,3,[4,5,6]]
nums4 = copy.deepcopy(nums3) # 深拷贝,拷贝所有层
nums3[-1][1] = 100  #[1, 2, 3, [4, 100, 6]] [1, 2, 3, [4, 5, 6]]

print(nums3, nums4)
相关标签: python 列表

上一篇:

下一篇: