python 5 列表

列表

列表相当于其他语言的数组

初使用

例:

# 作者:咸瑜
# 代码时间:2022年11月2日

blos = ['咸瑜的第一篇博客', 'Hello,Java', 18]
print(id(blos))
print(type(blos))
print(blos)

'''
2154506550208
<class 'list'>
['咸瑜的第一篇博客', 'Hello,Java', 18]
'''

创建方式

  1. 使用中括号
  2. 使用内置函数list()

例:

blos = ['咸瑜的第一篇博客', 'Hello,Java', 18]

blos_1 = list(['咸瑜是个废物', 'Hello,Spring', 19])

特点

  1. 有序
  2. 索引表元素
    1. 索引0开始
    2. 索引可以为负数,负数的话是倒过来数的,负数的话是-1开始
  3. 可以存储重复数据
  4. 任意类型数据混用
  5. 根据动态分配和回收内存
# 作者:咸瑜
# 代码时间:2022年11月2日

blos = ['咸瑜的第一篇博客', 'Hello,Java', 18]

for i in range(0, 3, 1):
    print(blos[i])

for i in range(-1, -4, -1):
    print(blos[i])

查询操作

index函数

  1. 如果存在多个相同元素,那么返回第一个
  2. 不存在元素抛出 ValueError
  3. 可以指定strat 和 end 区间查询

例:

# 作者:咸瑜
# 代码时间:2022年11月2日

blos = ['咸瑜的第一篇博客', 'Hello,Java', 18]

print(blos.index(18))
print(blos.index(18, 0, 2))  # 在 0  - 2(不包括) 中找 18


 # print(blos.index(18, -1, -2))  index不支持倒过来查找  貌似是的

直接通过下标获取

  • 正: 0 - n-1
  • 负:-n - -1
  • 索不存在 抛出ValueError

我就不演示了,懂了就Ok

获取列表中的多个元素

2022年11月6日 昨天软考考得就是这个,但是我没学,还是选错了,软考考Python我真的好无语,学吧,学无止境。

努力 + 相信命运

列表名[start : stop : step]

  1. 结果:原列表片段的拷贝,[即返回值和原值是不一样的]
  2. 范围:[start,top]
  3. step 默认是1,也可以是负数
  4. step为正数:看例子代码
  5. step为负数:看例子代码

例:

# 作者:咸瑜
# 代码时间:2022年11月6日

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 正数和缺省情况:
# start 默认为 第一个元素
# stop 默认为 最后一个元素
# step 默认为1
print(nums[0::])  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[0::2])  # [0, 2, 4, 6, 8]
print(nums[1:6:1])  # [1, 2, 3, 4, 5]
print(nums[1:6:2])  # [1, 3, 5]

# 作者:咸瑜 ------------------------- 作者:咸瑜 

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

# 负数情况:
# start 默认为 最后一个元素
# stop 默认为 第一个元素
# step 默认为-1
print(nums[::-1])  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(nums[-0::])  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[-2::])  # [8, 9]
print(nums[8:2:-2])  # [8, 6, 4]

列表元素查询操作

判断指定元素是否存在列表?

元素 in 列表名

元素 not in 列表名

列表元素的遍历

for 迭代变量 in 列表名

这个自己去试试, 例子我都懒得写了。

列表元素的增删改

PS:当你添加了删除了什么的,id 是不会改变的。

image-20221106154351803

# 作者:咸瑜
# 代码时间:2022年11月6日

slogan = []

print(id(slogan))  # 2102579690496

slogan.append("咸瑜")  # 只能添加一个元素 否则报错
slogan.append("今年")
slogan.append(18)
slogan.append("是个")
slogan.append("大帅哥")

print(slogan)  # ['咸瑜', '今年', 18, '是个', '大帅哥']
print(id(slogan))  # 2102579690496 ID 是不会改变的

slogan.extend(["昨天软考了", "考了3题Python", "感觉又没过了", "这就是天意", "再接再厉", "我是咸瑜", "也是废物","什麽都要慢慢來"])  # 相当于拼接【添加多个元素】,只能放列表 不能直接放元素

print(slogan)  # ['咸瑜', '今年', 18, '是个', '大帅哥', '昨天软考了', '考了3题Python', '感觉又没过了', '这就是天意', '再接再厉', '我是咸瑜', '也是废物', '什麽都要得慢慢來']
# 作者:咸瑜
# 代码时间:2022年11月7日

slogan = [0, 1, 2, 3]
# 在下标为 1 的 位置 添加 元素,只能添加一个元素,元素任何类型都OK
slogan.insert(1, "index:1,NewValue1")  # [0, 'index:1,NewValue1', 1, 2, 3]
print(slogan)
# 当然还可以是负数的
slogan.insert(-1, "index:-1,NewValue1")  # [0, 'index:1,NewValue1', 1, 2, 'index:-1,NewValue1', 3]
print(slogan)
# 作者:咸瑜
# 代码时间:2022年11月7日

slogan = [0, 1, 2, 3]
# 切片操作: 在“任意位置”添加多个元素【相当于修改】,同样的ID也是不会改变的
slogan[1:] = ["new2", "new3", "new4", "new5"]
print(slogan) #[0, 'new2', 'new3', 'new4', 'new5']

image-20221107175554328

看图不多说,看示例代码:

# 作者:咸瑜
# 代码时间:2022年11月7日

slogan = [0, 1, 2, 3, 1]
slogan.remove(1)  # [0, 2, 3, 1]
print(slogan)

# pop 不加参数的话 默认删除最后一个元素
slogan.pop(2)
print(slogan)  # [0, 2, 1]
slogan.pop()
print(slogan)  # [0, 2]

# 切片两种方法:一种产生新列表,一种不用 【仔细看即可:】
slogan = [0, 1, 2, 3, 1]
newslogan = slogan[1:3]
print(newslogan)  # [1, 2]

slogan[1:3] = []
print(slogan)  # [0, 3, 1]

# clear 把列表元素一次性删完
slogan.clear()
print(slogan)  # []
# del 直接把列表删除
del slogan
print(slogan)  # 报错,列表都没了,你还打印个毛啊

  1. 为指定索引元素赋新值
  2. 为指定的切片元素赋新值
# 作者:咸瑜
# 代码时间:2022年11月7日

slogan = [0, '牛逼', 2, 3, 4]

# 直接按索引修改
slogan[1] = 1
print(slogan)  # [0, 1, 2, 3, 4]

# 切片修改多个值
slogan[1:4] = ["new1", "new2"]
print(slogan)  # [0, 'new1', 'new2', 4]

排序

  • sort() 方法排序,所有元素都会从小到大顺序排序,可以指定reverse为True,进行降序排序,原列表ID不改变
  • 调用内置函数sorted() ,可以指定reverse为True,进行降序排序,原列表ID不改变,“但返回一个排好序的列表”
# 作者:咸瑜
# 代码时间:2022年11月7日

# sort
slogan = [0, 99, 2, 77, 4]
slogan.sort()  # 如果列表有str,会报错。
print(slogan, id(slogan))  # [0, 2, 4, 77, 99] 2065749703424
# 降序
slogan.sort(reverse=True)
print(slogan, id(slogan))  # [99, 77, 4, 2, 0] 2065749703424

# sorted
slogan = [0, 99, 2, 77, 4]
newSlogan = sorted(slogan)
print(slogan)  # [0, 99, 2, 77, 4] 还是原来的啊
print(newSlogan)  # [0, 2, 4, 77, 99] 新列表
# 降序
print(sorted(slogan, reverse=True)) #[99, 77, 4, 2, 0]

列表生成式

生成列表的一个公式?

image-20221108100420093

这个东西比较抽象一点啊,emmm,我们直接看代码演示:

# 作者:咸瑜
# 代码时间:2022年11月8日

'''
 即:range 生成的 1 - 10 放进item里面了,然后最左边的item是最终的值(list),
 然后items 就等于 item(list) 了,所以打印出来就是 1 - 10的列表
'''
items = [item for item in range(1, 11)]
print(items)  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

'''
    上面说了 最左边的list是最终值,所以我们可以进行 逻辑运算:
'''
items = [item * 2 for item in range(1, 11)]
print(items)  # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

items = [item * item for item in range(1, 11)]
print(items)  # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值