Datawhale_python学习笔记五

今天学习列表

1.列表的定义

列表(list)是包含人一个对象引用的有序序列,语法为[元素1, 元素2, ..., 元素n]
注:

  • 列表没有固定大小,长度和内容可变
  • 中括号把所有元素捆绑在一起
  • 逗号把每个元素分开

2.列表的创建

  • 创建普通列表
list_0 = ['I','Love','You']
print(list_0,type(list_0))
# ['I','Love','You'] <class 'list'>
list_1 = [1,3,1,4]
print(list_1,type(list_1))
# [1,3,1,4] <class 'list'>
  • 利用range函数创建列表
list_2 = list(range(10))
print(list_2,type(list_2))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] <class 'list'>
  • 利用推导式创建列表
list_3 = [1314] * 9
print(list_3,type(list_3))
# [1314,1314,1314,1314,1314,1314,1314,1314,1314] <class 'list'>

list_4 = [520 for i in range(6)]
print(list_4,type(list_4))
# [520,520,520,520,520,520] <class 'list'>

x = [i for i in range(100) if (i % 7) == 0 or (i % 9) == 0]
print(x, type(x))
# [0, 7, 9, 14, 18, 21, 27, 28, 35, 36, 42, 45, 49, 54, 56, 63, 70, 72, 77, 81, 84, 90, 91, 98, 99] <class 'list'>
  • 创建一个 4x3 的二维数组
list_5 = [[1,2,3],[4,5,6],[7,8,9],[0,0,0]]
print(list_5,type(list_5))
# [[1, 2, 3], [4, 5, 6], [7, 8, 9], [0, 0, 0]] <class 'list'>

for i in x:
    print(i, type(i))
# [1, 2, 3] <class 'list'>
# [4, 5, 6] <class 'list'>
# [7, 8, 9] <class 'list'>
# [0, 0, 0] <class 'list'>

# range嵌套
x = [[0 for col in range(3)] for row in range(4)]
print(x, type(x))
# [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] <class 'list'>

x[0][0] = 1
print(x, type(x))
# [[1, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] <class 'list'>

x = [[0] * 3 for row in range(4)]
print(x, type(x))
# [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] <class 'list'>

x[1][1] = 1
print(x, type(x))
# [[0, 0, 0], [0, 1, 0], [0, 0, 0], [0, 0, 0]] <class 'list'>
  • 创建混合列表
list_6 = ['I','Love','You','1314',520]
print(list_6)
# ['I','Love','You','1314',520]
  • 创建空列表
list_7 = []
list_8 = list()

3.列表的操作

函数或方法描述
list0[i] = x替换列表list0第i数据为x
list0[i:j] = list1用列表list1替换list0中第i到第j项数据(不含j项,下同)
list0[i:j:k] = list1用列表list1替换list0中的第i到第j以k为步数的数据
del list0[i:j]删除第i项到j项数据,等价于list0[i:j] = []
del list0[i:j:k]删除第i项到j项以k为步数的数据
list0 += list1 或 list0.extend(list1)将list1元素添加到list0中
list0 *= n更新list0,其中元素重复n次
list0.append(x)在列表最后增加元素x
list0.clear()删除list0中所有元素
list0.copy()生成一个新列表,赋值list0中的所有元素
list0.insert(i,x)在list0中第i位置增加元素x
list0.pop(i)将列表list0中第i项元素取出并删除
list0.remove(x)将列表中第一个x元素删除
list0.reverse()反转list0中元素

注:列表也可使用比较运算符,实际为单个元素逐项比较

作业

  1. 列表操作练习

列表lst 内容如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

请写程序完成下列操作:

  1. 在列表的末尾增加元素15
  2. 在列表的中间位置插入元素20
  3. 将列表[2, 5, 6]合并到lst中
  4. 移除列表中索引为3的元素
  5. 翻转列表里的所有元素
  6. 对列表里的元素进行排序,从小到大一次,从大到小一次
  7. 修改列表
# 对应每个问题,第七个不理解
lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]
lst.append(15)
lst.insert(len(lst)//2,20)
lst += [2,5,6] # lst.extend([2,5,6])
lst.pop(3)
lst.reverse()
lst.sort() #从小到大
lst.sort(reverse=True) #从大到小

(以上学习内容均由Datawhale温情提供)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值