08 列表list

08 列表list

本模块详细讲解了列表的相关操作
1 列表的增删改查
增加:append与insert
删除:remove与pop与del
修改:根据索引修改
查询:根据索引查询和使用enumerate函数查询
2 列表的求和 sum
3 列表的排序 sorted
4 列表的清空
5 多维列表

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
列表:list  []
字典:dict  {}
元组:tuple ()
集合:set   {}
"""
# 创建列表
# 创建空列表
list1 = []
list2 = list()
print(list1)
print(list2)
# 创建带有元素的列表
# 列表可以存放任意类型的数据
list1 = ['张三', '李四', True, False, 3.14, 100, []]
print(list1)

# 列表的增删改查
# append:添加数据,默认在末尾添加数据,也可以理解为追加
name = ['张三', '李四', '王五', '赵六']
name.append('田七')
print(name)
# insert(插入的索引值,插入的对象):根据索引插入数据
name = ['张三', '李四', '王五', '赵六']
name.insert(1, '马化腾')
print(name)

for x, y in enumerate(name):
    print(x, y)

# 删除数据
# remove:从左到右删除满足条件的第一个元素
name = ['张三', '李四', '王五', '赵六', '张三']
name.remove('张三')
print(name)
# remove不能删除列表中不存在的元素,否则会报错
if '王老五' in name:
    name.remove('王老五')

# pop:根据索引值删除元素,pop(索引值)
name = ['张三', '李四', '王五', '赵六', '张三']
name.pop(-1)
print(name)
# del删除
# del根据索引删除元素
name = ['张三', '李四', '王五', '赵六', '张三']
del name[0]
print(f'使用del删除后的列表为:{name}')
name = ['张三', '李四', '王五', '赵六', '张三']
del name[:3]
print(f'使用del切片删除后的列表为:{name}')

# 修改数据:直接根据索引值修改
name = ['张三', '李四', '王五', '赵六']
name[0] = '张三儿'
print(name)

# 查询数据
# 查询指定索引值的数据
print(name[3])
# 查询所有元素
for x, y in enumerate(name):
    print(x, y)

# 列表的切片:返回的仍然是列表
list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(list1[0:3])    # abc
print(list1[:5])     # abcde
print(list1[2:])     # cdefg
print(list1[::])     # abcdefg
print(list1[::2])    # aceg

# 列表的迭代
list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
for i in list1:
    print(i)
# 练习:输出所有张姓人氏,startswith
name = ['张三','李四','张一鸣','马云','张无忌','马化腾']
for x in name:
    if x.startswith('张'):
        print(x)
# 将张姓人氏存放到列表中:append
list1 = []
for x in name:
    if x.startswith('张'):
        list1.append(x)
print(list1)

# 列表推导式:在列表中写表达式,但是只能用于逻辑比较简单的语法
list1 = [x for x in name if x.startswith('张')]
print(list1)

# 联系:输出1-100(包含100)以内所有的奇数,要求使用列表推导式
list1 = [y for y in range(1,101) if y % 2 == 1]
print(list1)

list2 = []
for i in range(1,101):
    if i % 2 == 1:
        list2.append(i)
print(list2)

# 列表的添加:
# 方法一:使用+直接拼接
list1 = [1,2,3,4]
list2 = [7,8,9,10]
list3 = list1 + list2
print(list3)

# 方法二:通过extend扩展
list1.extend(list2)
print(list1)

# 列表的方法
# 转置列表:reverse
list1 = [1,2,3,4,5,6,7,8]
list1.reverse()
print(list1)
# 列表的排序,默认是升序排序
list2 = [1,5,2,7,3,8,4,9,6]
list3 = sorted(list2)
print(list3)
# 设置降序排序 reverse=True
list4 = sorted(list2,reverse=True)
print(list4)

# join拼接
list1 = ['张三','李四','王五']
list2 = '--'.join(list1)
print(list2)

# sum求和
list1 = [1,2,3,4,5,6]
print(sum(list1))
# 列表内元素类型的转换:map(要实现的功能,目标对象)
list1 = ['1','2','3','4','5','6']
list2 = list(map(int,list1))
list2 = sum(list2)
print(list2)

# 清空列表
list1.clear()
print(list1)

# 多维列表
# 一维列表
list1 = [1,2,3]
print(list1[0])
# 二维列表
list2 = [[1,2,3],[4,5,6],[7,8,9]]
print(list2[0][0])
# 三维列表
list3 = [
    [
        ['张三','李四','王五'],
        [20,21,22]
    ],
    [
        ['打篮球','听歌','跑步'],
        ['健身','LOL','看电影'],
        ['卡丁车','马拉松','学python']
    ]
]
print(list3[0][0][2])
# 打印出 'LOL'  '学python'
print(list3[1][1][1])
print(list3[1][2][2])


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值