Python列表

 列表的基本操作

'''插入元素'''
heros = ["钢铁侠", "绿巨人"]
heros.append("黑寡妇")		#append() 插入单个元素
heros.extend(["鹰眼", "灭霸", "雷神"])	#extend() 批量插入元素
s = [1, 2, 3, 4, 5]
s[len(s):] = [6]	# 用元组的形式插入元素
s[len(s):] = [7, 8, 9]
s = [1, 3, 4, 5]
s.insert(1, 2)	# insert(a, b) a为索引, b为元素

'''删除元素'''
heros.remove("灭霸")	# remove() 传入元素,删除元素,若传入的元素不存在,报错
heros.pop()		# 删除最后一个元素
heros.pop(2) 	# 传入索引,删除指定元素
heros.clear()   # 清空元素

'''修改元素'''
heros = ["蜘蛛侠", "绿巨人", "黑寡妇", "鹰眼", "灭霸", "雷神"]
heros[4] = "钢铁侠"
heros[3:] = ["武松", "林冲", "李逵"]

'''排序'''
nums = [3, 1, 9, 6, 8, 3, 5, 3]
nums.sort()     # sort() 升序排序
nums.reverse()  # reverse() 将nums反转排序
nums = [3, 1, 9, 6, 8, 3, 5, 3]
nums.sort(reverse = True)   # sort(reverse = True)效果与上免得相同

'''计数'''
nums = [3, 1, 9, 6, 8, 3, 5, 3]
num = nums.count(3) # nums中3出现的次数
index_heros = heros.index("绿巨人")     # 返回传入元素的索引
index_nums = nums.index(3, 1, 7)    # index(x, start, end) 指定起始位置和结束位置
nums_copy1 = nums.copy()    # 复制一份nums
nums_copy2 = nums[:]        # 切片

浅拷贝 

s = [1, 2, 3]
t = [4, 5, 6]
'''相加结果'''
s + t
'''
[1, 2, 3, 4, 5, 6]
'''

'''相乘结果'''
s * 3
'''
[1, 2, 3, 1, 2, 3, 1, 2, 3]
'''

matrix = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]
for i in matrix:
    for j in i:
        print(j, end = ' ')
    print()

'''    
1 2 3 
4 5 6 
7 8 9 
'''

A = [0] * 3
'''
A:[0, 0, 0]
'''

for i in range(3):
    A[i] = [0] * 3
'''
A:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
'''

'''B的写法错误'''
B = [[0] * 3] * 3
'''
B:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
'''

A[1][1] = 1
'''
A:[[0, 0, 0], [0, 1, 0], [0, 0, 0]]
'''

B[1][1] = 1
'''
B:[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
'''

 

x = [1, 2, 3]
y = x
x[1] = 1
'''
x:[1, 1, 3]
y:[1, 1, 3]
'''

x = [1, 2, 3]
y = x.copy()
x[1] = 1
'''
x:[1, 1, 3]
y:[1, 2, 3]
'''

x = [1, 2, 3]
y = x[:]
x[1] = 1
'''
x:[1, 1, 3]
y:[1, 2, 3]
'''

"""以上两种拷贝方法都为浅拷贝,拷贝一维列表没问题,但二维列表就会出错"""
x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
y = x.copy()
x[1][1] = 0
'''
x:[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
y:[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
'''

 

深拷贝 

# 导入copy类
import copy
x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
y = copy.copy(x)    # 依旧是浅拷贝
x[1][1] = 0
'''
x:[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
y:[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
'''

x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
y = copy.deepcopy(x)    # 深拷贝
x[1][1] = 0
'''
x:[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
y:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
'''

列表推导式 

'''列表推导式'''
matrix = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]
col2 = [row[1] for row in matrix]    
# matrix共有三个元素row:[1, 2, 3],[4, 5, 6],[7, 8, 9]
'''
col2:[2, 5, 8]
'''

diag = [matrix[i][i] for i in matrix] 
'''
diag:[1, 5, 9]
'''

words = ["Great", "FishC", "Brilliant", "Excellent", "Fantistic"]
ans = [i for i in words if i[0] == 'F' or i[0] == 'f']
'''
ans:['FishC', 'Fantistic']
'''

even = [i for i in range(10) if i % 2 == 0]
'''
even:[0, 2, 4, 6, 8]
'''

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flatten = [col for row in matrix for col in row]    # 嵌套for循环,相当于下面的佛如循环
'''
flatten:[1, 2, 3, 4, 5, 6, 7, 8, 9]
'''

flatten = []
for row in matrix:
    for col in row:
        flatten.append(col)
'''
flatten:[1, 2, 3, 4, 5, 6, 7, 8, 9]
'''

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flatten = [matrix[i][j] for i in range(len(matrix)) if i % 2 == 1 for j in range(len(matrix[i])) if j % 2 == 0]
'''
flatten:[4, 6]
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值