自学Python所记(六)

11.5、补充:

列表推导式:快速的生成列表

变量名 = [生成数据的规则 for 变量 in xxx]   # 循环每执行一次,在列表中添加一个数据

list1 = ['hello' for i in range(5)]
print(list1)  # ['hello', 'hello', 'hello', 'hello', 'hello']

list2 = [i for i in range(5)]
print(list2)  # [0, 1, 2, 3, 4]

list3 = [i for i in list1]
print(list3)  # ['hello', 'hello', 'hello', 'hello', 'hello']
range (start,end,step)

range(1,10)    # 1 2 3 4 5 6 7 8 9

range(1,10,2) # 1 3 5 7 9

11.6、列表的修改

想要修改列表中指定下标位置的数据,,使用的语法:
列表[下标] = 数据
# 字符串中字符不能使用下标修改
# 定义列表
my_list=[1,3,5,7]

# 1 想要将下标为1的数据改为22
my_list[1] = 22
print(my_list)  #[1, 22, 5, 7]


# 2 如果指定的下标不存在,会报错
my_list[10] = 10 # 代码会报错

# 修改最后一个位置的数据,改为'hello'
my_list[-1] = 'hello'
print(my_list)   # [1, 22, 5, 'hello']

11.7、列表的删除操作

在列表中删除中间的数据,那么后面的数据会向前移动
11.7.1、根据下标删除
列表.pop(下标) # 删除指定下标位置对应的数据

1.下标不写,默认删除最后一个数据(常用 )

2.书写存在的下标,删除对应下标位置的数据

返回:返回删除的数据,
my_list = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0] 

# 1.删除最后一个位置的数据
num = my_list.pop()
print('删除的数据为:', num)  # 删除的数据为: 0
print(my_list)  # [1,3,5,7,9,2,4,6,8]

# 2.删除下标为1的数据3
my_list.pop(1)
print(my_list)  # [1, 5, 7, 9, 2, 4, 6, 8]
11.7.2、根据数据值删除
列表.remove(数据值)   # 根据数据值删除

返回:None

注意:如果要删除的数据不存在,会报错
# 3.删除数据为7的数据
my_list.remove(7)  # 注意,如果列表中有多个7,只能删除第一个
print(my_list)  # [1, 5, 9, 2, 4, 6, 8]

# my_list.remove(7)   # 会报错
11.7.3、清空数据(不常用)
列表.clear()
# 清空
my_list.clear()
print(my_list)  # []

11.8、列表反转(倒置)

字符串中 反转倒置:  字符串[::-1]

列表中 反转和倒置:

1. 列表[::-1]  #使用切片的方法,会得到一个新的列表,源列表不会发生改变

2. 列表.reverse()     # 直接修改原列表,返回None

my_list = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]

# 使用切片的方法反转,会得到一个新列表
list1 = my_list[::-1]
print('my_list:', my_list)  # my_list: [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]
print('list1:', list1)    # list1: [0, 8, 6, 4, 2, 9, 7, 5, 3, 1]

# 使用reverse方法,直接修改原列表
my_list.reverse()
print('my_list:', my_list)  # my_list: [0, 8, 6, 4, 2, 9, 7, 5, 3, 1]

11.9、列表的复制

将列表中的数据复制一份,给到一个新的列表
# 使用场景:有一个列表,需要修改操作列表中的数据,修改之后,需要和原数据进行对比,即原数据不能改

1.使用切片

变量 = 列表[:]

2.使用copy方法

变量 = 列表.copy()
my_list = [1, 2, 3]
my_list1 = my_list[:]
print('my_list:', my_list)
print('my_list1:', my_list1)

my_list1[1] = 22
print('my_list:', my_list)
print('my_list1:', my_list1)
my_list2 = my_list.copy()
print('my_list:', my_list)
print('my_list2:', my_list2)

my_list2[1] = 20
print('my_list:', my_list)
print('my_list2:', my_list2)
# 这是同一个列表,多了个名字,引用

my_list3=my_list

11.10、列表的排序

列表的排序,一般来说都是对数字进行排序的

列表.sort() # 按照升序排序,从小到大

列表.sort(reverse=True) # 降序排序,从大到小
list = [1,4,2,5,0,8,9,3,4,6]

# 升序排序
list.sort()
print(list)

# 降序排序
list.sort(reverse=True)
print(list)

11.11、列表嵌套

列表嵌套,列表中的内容还是列表

使用下标来确定获取的是什么类型的数据,然后确定可以继续进行什么操作
list = [['张三',18,'dui'],['里斯',43,'uiy']]

print(len(list))  # 2
print(list[0])  # ['张三', 18, 'dui']
print(list[0][0])  # 张三
print(list[0][0][0])  # 张

# 将18改为19
list[0][1] =19
print(list)   # [['张三', 19, 'dui'], ['里斯', 43, 'uiy']]

# 给里斯所在列表添加一个性别信息
list[1].append('男')
print(list)  #  [['张三', 19, 'dui'], ['里斯', 43, 'uiy', '男']]


# 将张三年龄信息删除
list[0].pop(1)
# list[0].remove('19')
print(list)   # [['张三', 'dui'], ['里斯', 43, 'uiy', '男']]



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值