列表
列表相当于其他语言的数组
初使用
例:
# 作者:咸瑜
# 代码时间:2022年11月2日
blos = ['咸瑜的第一篇博客', 'Hello,Java', 18]
print(id(blos))
print(type(blos))
print(blos)
'''
2154506550208
<class 'list'>
['咸瑜的第一篇博客', 'Hello,Java', 18]
'''
创建方式
- 使用中括号
- 使用内置函数list()
例:
blos = ['咸瑜的第一篇博客', 'Hello,Java', 18]
blos_1 = list(['咸瑜是个废物', 'Hello,Spring', 19])
特点
- 有序
- 索引表元素
- 索引0开始
- 索引可以为负数,负数的话是倒过来数的,负数的话是-1开始
- 可以存储重复数据
- 任意类型数据混用
- 根据动态分配和回收内存
# 作者:咸瑜
# 代码时间: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函数
- 如果存在多个相同元素,那么返回第一个
- 不存在元素抛出 ValueError
- 可以指定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]
- 结果:原列表片段的拷贝,[即返回值和原值是不一样的]
- 范围:[start,top]
- step 默认是1,也可以是负数
- step为正数:看例子代码
- 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 是不会改变的。
增
# 作者:咸瑜
# 代码时间: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']
删
看图不多说,看示例代码:
# 作者:咸瑜
# 代码时间: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) # 报错,列表都没了,你还打印个毛啊
改
- 为指定索引元素赋新值
- 为指定的切片元素赋新值
# 作者:咸瑜
# 代码时间: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]
列表生成式
生成列表的一个公式?
这个东西比较抽象一点啊,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]
标签:11,slogan,python,元素,列表,咸瑜,print
From: https://www.cnblogs.com/bi-hu/p/16868777.html