Python自学第四天——列表

作为新手自学Python的第四天,技术低微,希望可以通过这种方式督促自己学习。

个人学习环境:python3.9,PyCharm 2021.3.2 (Community Edition)

———————————————————————————————————————————

1、为什么需要列表

变量可以存储一个元素,列表是一个“大容器”可以存储N多个元素

相当于其他语言的数组

2、列表的创建

列表需要使用中括号[ ],元素之间使用英文的逗号,进行分隔

# 列表的创建方式
"""第一种方式,使用[]"""
lst = ['hello', 'world', 98]
​
"""第二种方式,使用内置函数list()"""
lst2 = list(['hello', 'world', 98])

3、列表的特点

列表元素按顺序有序排序

索引映射唯一个数据

列表可以存储重复数据

任意数据类型混存

根据需要动态分配和回收内存

4、列表的基础操作

4.1 获取列表中指定元素的索引

index():

·如果列表中存在N个相同元素,只返回相同元素中第一个元素的索引

·如果查询的元素不在列表中,则报错

·还可以在指定的start和stop之间进行查询

lst = ['hello', 'world', 98, 'hello']
print(lst.index('hello'))   #如果列表中有相同元素只返回列表中相同元素的第一个元素的索引
print(lst.index('hello', 1, 4)) #输出在列表中从索引为1开始直到索引为4为止中,'hello'元素的索引

4.2 列表元素的查询操作

获取列表中的多个元素——切片操作

切片的结果原列表的拷贝
切片的范围[start, stop)
切片操作中step默认为1,可省略省略后简写为[start: stop]
step为正数[:stop:step]切片的第一个元素默认是列表的第一个元素从start开始往后计算切片
[start::step]切片的最后一个元素默认是列表的最后一个元素
step为负数[:stop:step]切片的第一个元素默认是列表的最后一个元素

从start开始往前计算切片

[start::step]切片的最后一个元素默认是列表的第一个元素

lst = [10, 20, 30, 40, 50, 60, 70, 80]
# start=1,stop=6,step=1
print(lst[1:6:1])

切片操作默认为1,如不写就默认为1,包括start、step,stop如不填写则默认为全集

step为负数的一个例子,或许可以帮助理解

# def定义函数
def reverseWords(input):
    # 通过空格将字符串分隔符,把各个单词分隔为列表
    inputWords = input.split(" ")

    # 翻转字符串
    # 假设列表 list = [1, 2, 3, 4],
    # list[0]=1, list[1]=2 ,而-1表示最后一个元素 list[-1]=4(与list[3]=4一样)
    # inputWords[-1::-1]有三个参数
    # 第一个参数 -1 表示最后一个元素
    # 第二个参数为空,表示移动到末尾列表
    # 第三个参数为步长, -1 表示逆向
    inputWords = inputWords[-1::-1]

    # 重新组合字符串
    output = ' '.join(inputWords)

    return output


if __name__ == "__main__":
    input = 'I like runoob'
    rw = reverseWords(input)
    print(rw)

4.3 列表元素的查询操作

1)判断指定元素在列表中是否存在

元素 in 列表名

元素 not in 列表名

2)列表元素的遍历

for 迭代变量 in 列表名:

操作

print('p' in 'python')
"""结果为Ture"""
​
print('k' not in 'python')
"""结果为True"""

4.4 列表元素的增加操作

方法/其他描述
append()在列表的末尾添加一个元素
extend()在列表的末尾至少添加一个元素
insert()在列表的任意位置添加一个元素
切片操作在列表的任意位置添加N个元素

# 向列表的末尾添加一个元素
lst = [10, 20, 30]
lst.append(100)
lst2 = ['hello', 'world']
lst.append(lst2)    # 将lst2作为一个元素添加到列表的末尾
"""
结果为:
[10, 20,30, 100, ['hello', 'world']]
"""
# 列表的末尾至少添加一个元素
lst.extend(lst2)    
"""
结果为:
[10, 20, 30, 100, 'hello', 'world']
"""
# 在任意位置上添加一个元素
lst.insert(1, 90)
"""
结果为:
[10, 90, 20, 30, 100, 'hello', 'world']
"""
# 在列表的任意位置添加N多个元素
lst3 = [True, False, 'hello']
lst[1:]=lst3
"""
结果为:
[10, True, False, 'hello']
"""

4.5 列表元素的删除操作

方式/其他描述
remove()每次删除一个元素
如有重复元素,只删除第一个元素
元素不存在则报错
pop()删除一个指定索引位置上的元素
指定索引不存在时不报错
如不指定索引,则删除最后一个元素
切片操作一次至少删除一个元素
clear()清空列表
del删除列表
lst = [10 ,20 ,30, 40, 50, 60, 30]
lst.remove(30)	#从列表中移除一个元素,如果有重复元素只移除第一个元素
"""
结果为:
[10, 20, 40, 50, 60, 30]
"""
# pop()根据索引移除元素
lst.pop(1)
"""
结果为:
[10, 40, 50, 60, 30]
"""
lst.pop()
"""
结果为:
[10, 40, 50, 60]
"""
# 切片操作,删除列表元素会产生一个新的列表对象
new_list = lst[1:3]
print(lst)
print(new_list)
"""
结果为:
[10, 40, 50, 60]
[40, 50]
"""

# 不产生新的列表对象,而是删除原列表中的内容
lst[1:3] = []
"""
结果为:
[10, 60]
"""
# 清楚列表中的所有元素
lst.clear()
"""
结果为:
[]
"""
#删除列表对象
del lst
"""
此时lst对象已经被删除,如果输出lst对象会报错
"""

4.6 列表元素的修改操作

为指定索引的元素赋予一个新值

为指定的切片赋予一个新值

lst = [10, 20, 30, 40]
# 一次修改一个值
lst[2] = 100
print(lst)
"""
结果为:
[10, 20, 100, 40]
"""
lst[1:3] = [300, 400, 500, 600]
print(lst)
"""
结果为:
[10, 300, 400, 500, 600, 40]
"""

4.7 列表的排序操作

常见方法:

1)调用sort()方法,列有中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse = True,进行降序排序

lst = [20, 40, 10, 98, 54]
lst.sort()
print(lst)
"""
结果为:
[10, 20, 40, 54, 98]
"""

sort()排序是在原列表的基础上,不会创建新列表

# 通过指定关键字参数,将列表中的元素进行降序排序
lst.sort(reverse = True)	# reverse = True 表示降序排序,reverse = False 表示升序排序
print(lst)
"""
结果为:
[98, 54, 40, 20, 10]
"""

2)调用内置函数sorted(),可以指定reverse = True,进行降序排序,原列表不发生改变

使用内置函数sorted()对列表进行排序,将产生一个新的列表对象

lst = [20, 40, 10, 98, 54]
new_list = sorted(lst)
print(new_list)
"""
结果为:
[10, 20, 40, 54, 98]
"""

# 通过指定关键字参数,将列表中的元素进行降序排序
desc_list = sorted(lst, reverse = True)
print(desc_list)
"""
结果为:
[98, 54, 40, 20, 10]
"""

5、列表生成式

简称“生成列表的公式”

语法格式

lst = [ i for i in range(1, 10) ]
print(lst)
"""
结果为:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
"""

lst = [ i*i for i in range(1, 10) ]
print(lst)
"""
结果为:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
"""

注意事项:“表示列表元素的表达式”中通常包含自定义变量

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wei730050

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值