1、输出每日一贴
import datetime
mot = ["今天星期一:\n坚持下去!",
"今天星期二:\n活人微死!",
"今天星期三:\n请假一天!",
"今天星期四:\n明天放假!",
"今天星期五:\n放假啦!",
"今天星期六:\n放假第一天!",
"今天星期日:\n想念周六!"]
day = datetime.datetime.now().weekday() # 输出0-6,代表周一到周日
print(mot[day])
导入日期的类:import datetime
2、遍历列表
(1)直接使用for循环实现
nba = ["林黛玉", "贾宝玉", "王熙凤", "刘姥姥", "孙悟空", "猪八戒"]
for item in nba:
print(item)
(2)用for循环和enumerate()函数实现
nba = ["林黛玉", "贾宝玉", "王熙凤", "刘姥姥", "孙悟空", "猪八戒"]
for idx, item in enumerate(nba):
print("id:", idx, "item:", item)
关于enumerate()函数解释:
idx:用于保存元素的索引
item:用于保存获取到的元素值
nba:列表的名称
3、向列表添加、修改和删除元素
(1)添加
nba = ["林黛玉", "贾宝玉", "王熙凤", "刘姥姥", "孙悟空", "猪八戒"]
print("最开始的列表:", nba)
# 添加元素:append()方法
nba.append("你好")
nba.append("Python")
print("添加元素后的列表:", nba)
# insert()方法也可以添加元素,向列表指定的位置添加元素,执行效率没有append高,不推荐
补充:
listname.extend(seq)
listname为原列表,seq为添加的列表,seq的内容将追加到listname的后面
seq1 = ["你好"]
seq2 = ["Python!"]
print("添加前:", seq1)
seq1.extend(seq2)
print("添加后:", seq1)
(2)修改
修改列表的元素只需要通过索引获取该元素,并为其重新赋值即可
nba = ["林黛玉", "贾宝玉", "王熙凤"]
print(nba[1])
nba[1] = "大狗狗"
print(nba[1])
print(nba)
(3)删除
nba = ["林黛玉", "贾宝玉", "王熙凤", "刘姥姥", "孙悟空", "猪八戒"]
# 根据索引删除
del nba[0] # 删除林黛玉
print(nba)
# 根据元素删除
nba.remove("猪八戒") # 删除猪八戒
print(nba)
# 根据元素删除最好判空
value = "贾宝玉"
if nba.count("贾宝玉") > 0:
nba.remove(value)
print(nba)
# count()方法用于判断指定元素出现的次数,返回值为0代表不存在
4、列表的计算和统计
(1)指定元素在列表出现的次数
nba = [1, 2, 3, 2, 1]
count = nba.count(3)#输出结果为1
print(count)
(2)指定元素首次出现的下标
nba = ["林黛玉", "贾宝玉", "王熙凤", "刘姥姥", "孙悟空", "猪八戒"]
idx = nba.index("贾宝玉")
print("id:", idx)#输出结果为id:1
(3)元素之和
nba = [1, 3, 5, 7, 9]
total = sum(nba)
print(total) # 输出25
5、列表的排序
两种办法:sort()方法和内置的sorted()函数
(1)sort()方法,改变原序列
nba = [13, 37, 56, 8, 21, 45, 66]
print("排序前的列表:", nba)
nba.sort()
print("升序:", nba)
nba.sort(reverse=True)
print("降序:", nba)
排序前的列表: [13, 37, 56, 8, 21, 45, 66]
升序: [8, 13, 21, 37, 45, 56, 66]
降序: [66, 56, 45, 37, 21, 13, 8]
nba.sort(Key = None, reverse = False/True)
key:从每个元素提取一个用于比较的键
reverse:true表示降序排列。false表示升序排列
对于字符串列表排序时,采用先对大写字母排序,再对小写字母排序。不区分大小写需要对key指定参数
cha = ['cat', 'Tom', 'Angle', 'pet']
cha.sort() # 默认区分大小写
print(cha)
cha.sort(key=str.lower) # 不区分大小写
print(cha)
[‘Angle’, ‘Tom’, ‘cat’, ‘pet’]
[‘Angle’, ‘cat’, ‘pet’, ‘Tom’]
(2)内置的sorted()方法,不改变原序列
grade = [98, 97, 99, 56, 73, 97, 100]
grade_one = sorted(grade)
print("升序:", grade_one)
grade_two = sorted(grade, reverse=True)
print("降序:", grade_two)
print("原序列:", grade)
升序: [56, 73, 97, 97, 98, 99, 100]
降序: [100, 99, 98, 97, 97, 73, 56]
原序列: [98, 97, 99, 56, 73, 97, 100]
6、列表推导式
(1)生成指定范围的:
list = [expression for var in range]
list:生成的列表名称
expression:表达式,计算新列表的元素
var:循环变量
range:采用range()函数生成的range对象
import random
listName = [random.randint(10, 100) for i in range(10)]
print(listName)
随机生成:[77, 54, 71, 72, 79, 53, 59, 83, 18, 68]
补充:
random.randint() 是 random 模块中的一个函数,其作用是生成指定范围内的随机整数。该函数的返回值包含了上下限端点的值。
random.randint(a, b)
a:此为随机整数范围的下限,生成的随机数不会小于这个值。
b:它是随机整数范围的上限,生成的随机数不会大于这个值。
需要注意的是,这里要求 a 必须小于或等于 b,否则会引发 ValueError 异常。
(2)生成指定需求的
newlist = []expression for var in list]
price = [1, 3, 6, 4]
newList = [float(i*0.5) for i in price]
print(newList)
[0.5, 1.5, 3.0, 2.0]
(3)从列表中选择符合条件的
price = [1, 3, 6, 4, 8, 12]
newList = [x for x in price if x > 4]
print(newList)
[6, 8, 12]
7、二维列表
arr = [[j for j in range(5)] for i in range(4)]
print(arr)
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
横竖版古诗:
str1 = "千山鸟飞绝"
str2 = "万径人踪灭"
str3 = "孤舟蓑笠翁"
str4 = "独钓寒江雪"
verse = [list(str1), list(str2), list(str3), list(str4)]
for i in range(4):
for j in range(5):
if j == 4:
print(verse[i][j])
else:
print(verse[i][j], end="")
print("**************")
for i in range(5):
for j in range(4):
if j == 3:
print(verse[j][i])
else:
print(verse[j][i], end="")