python笔记2

列表

  • 列表可以容纳不同数据类型
lb = [1, 2, 3, 4, 5, 'dddddd']
  • 下标索引获取元素的值
lb[0]
  • len()获取列表长度
  • 索引
正索引012344
复索引-6-5-4-3-2-1
12345‘dddddd’
#最后一个元素
len1 = len(lb) 
lb[len1 - 1]
'dddddd'
lb[-1]
'dddddd'
  • 列表切片
lb[0:3]
[1, 2, 3]
lb[3:6]
[4, 5, 'dddddd']
lb[:2]
[1, 2]
lb[2:]
[3, 4, 5, 'dddddd']
  • 跨度
lb[::2]
[1, 3, 5]
lb[::-1] #倒序
['dddddd', 5, 4, 3, 2, 1]
# p21 增 append():只能增加一个 extend():可以添加可迭代对象
a = [1, 2]
a.append(3)
[1, 2, 3]
a.extend([4, 5, 6])
[1, 2, 3, 4, 5, 6]
#insert(index, obj) 插入 index索引,obj值
a.insert(2, 100)
[1, 2, 100, 3, 4, 5, 6]
#1.如果列表中存在多个匹配的元素,那么它只会删除第一个。
#2.如果指定的元素不存在,那么程序就会报错。
a.remove(100)
[1, 2, 3, 4, 5, 6]
# pop(index) index索引,删除index索引的值
a.pop(2)
3
[1, 2, 4, 5, 6]
# 清空 clear()
a.clear()
[]
# 列表是可变的,而字符串是不可变的。
b = [0, 1, 2, 3, 4]
b[4] = 100
[0, 1, 2, 3, 100]
b[4:] = [5, 6] #先删除再添加
[0, 1, 2, 3, 5, 6]
c = [4, 5, 9, 1, 0, 4]
c.sort() #从小到大
[0, 1, 4, 4, 5, 9]
c.reverse() # 倒序
[9, 5, 4, 4, 1, 0]
c = [4, 5, 9, 1, 0, 4]
c.sort(reverse = True) 
[9, 5, 4, 4, 1, 0]
# count() 查找元素有多少个 count()
c.count(4)
2
# index() 查找元素的索引值 index(index, start, end)
c.index(4)
2
  • 列表的加法和乘法
# 加法就是拼接 重复列表中的元素若干次
p = [2, 4]
q = [5, 6]
p + q
[2, 4, 5, 6]
p * 3
[2, 4, 2, 4, 2, 4]
  • 嵌套列表
matrix = [[1, 2, 3], [4, 5, 6]]
# 构建
A = [0] * 3
for i in range(3):
    A[i] = [0] * 3
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
  • is
    A
    B
# is判断地址是否指向用一个对象的运算符
A[0] is A[1]
False # 如上图
B = [[0] * 3] * 3 #注意 拷贝的就是对同一个列表的引用
B[0] is B[1]
True # 如上图
# 同一个字符串,地址相同
x = "FishC"
y = "FishC"
x is y
True

FishC

  • 浅拷贝 和 深拷贝
    copy
# 一维列表如果要让两个变量互不干扰,就需要用到copy [:] 浅拷贝
# 浅拷贝
x = [1, 2, 3]
xx = x.copy() 
xxx = x[:] #copy
xx, xxx
([1, 100, 3], [1, 100, 3])

深拷贝

# 深拷贝 copy模块
import copy 
x = [[1, 2], [3, 4]]
y = copy.copy(x)  # 浅拷贝
x[1] is y[1]
True
x = [[1, 2], [3, 4]]
y = copy.deepcopy(x)  # 深拷贝
x[1] is y[1]
False
  • 列表推导式
# 公式 [表达式 for target in iterable]
oho = [1, 2, 3, 4, 5]
oho = [i * 2 for i in oho]
[2, 4, 6, 8, 10]
# 公式 [表达式 for target in iterable if condition]
even = [i for i in range(10) if i % 2 == 0]
[0, 2, 4, 6, 8]
# 公式 [表达式 for target1 in iterable1 
#		for target2 in iterable2
#			······
#			]
matrix = [[1, 2, 3], [4, 5, 6]]
f = [j for i in matrix for j in i] #二维变一维列表
[1, 2, 3, 4, 5, 6]
# 公式 [表达式 for target1 in iterable1 if condition1
#		for target2 in iterable2 if condition2
#			······
#			]
# 依葫芦画瓢
  • list()
# 可以把字符串和元组变成链表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值