python-rong-day04

列表

# 列表 :  类似其他语言的数组, 只不过可以存储不同类型的数据, 更灵活
player_ls = ['刘翔', '姚明', '杨倩', 100, 99.7, [0.8, 9], 233]
print(player_ls)
print(type(player_ls))
# 最基本操作
# 访问 支持下标(索引)访问
print(player_ls[1])
print(player_ls[0])
# len() 可以测量序列中元素的个数
print(len(player_ls))
print(len(player_ls[0]))
# 下标必须在合理范围
# print(player_ls[6]) IndexError: list index out of range
# 遍历, 也叫迭代 , 就是一个一个取出处理
# 1遍历
print("--"*10)
for x in player_ls:
    print(x)
print("--"*10)
for index in range(len(player_ls)):
    print(player_ls[index])
print("--"*10)
# 同时返回 元素值和索引值
for x in enumerate(player_ls):
    print(x)
print("--"*10)
for i, v in enumerate(player_ls):
    print(i, v)
# 修改
player_ls[3] = '科比'
print(player_ls)
# 增加
# 1.末尾追加
player_ls.append("郭艾伦1")
player_ls.append("郭艾伦2")
player_ls.append(['詹姆斯', '库里'])
print(player_ls)
# 2. 将迭代对象元素依次加入到列表
player_ls.extend(['詹姆斯', '库里'])
print(player_ls)
player_ls.extend("韩德军")
print(player_ls)
# 3. 将元素插入指定位置
player_ls.insert(0, "易建联")
print(player_ls)
# 删除
# del player_ls
# print(player_ls)NameError: name 'player_ls' is not defined
del player_ls[0]
del player_ls[0]
print(player_ls)
# pop 默认弹出最后一个元素, 也可以指定位置弹出, pop会返回删除的元素
print(player_ls.pop())
print(player_ls.pop(0))
print(player_ls)
# 按照值删除
player_ls.remove('詹姆斯')
print(player_ls)
# 清空列表  [] 是空列表
player_ls.clear()
print(player_ls)


列表和函数

# 列表与函数
from random import randint
# 1. 编写一个可以生成指定随机值范围和列表长度的函数
def generate_random_list(start, end, length):
    ls = []
    for i in range(length):
        num = randint(start, end)
        ls.append(num)
    return ls
print(generate_random_list(-5, 5, 5))
salarys = generate_random_list(3000, 10000, 10)
print("salarys = ", salarys)

# 编写函数将前n位员工的工资增加或减小 money元
def update_salarys(ls, n, money):
    for i in range(n):
        ls[i] = ls[i] + money
    return ls

print(update_salarys(salarys, 3, -1000))
print(update_salarys(salarys, 5, 2000))

scores = generate_random_list(10, 100, 8)
print(scores)

# 编写函数 将成绩及格的筛选出来, 并且返回这个列表
def select_scores(ls):
    # for i in range(n):
    #    if ls[i] >= 60:
    #         print(ls[i])
    ns = []
    for x in ls:
        if x >= 60:
            ns.append(x)
    return ns
print(select_scores(scores))

切片

# python 切片: 对序列(列表, 字符串等)截取一部分的操作
ls = [60, 87, 38, 12, 52, 69, 59, 54]
print(ls)
# ls[起始:终止:步长]  左闭右开
# 起始位置在最开始可以省略
# 终止位置在最后可以省略
# 步长是1可以省略
print(ls[0:4])
print(ls[:4])
print(ls[2:6])
print(ls[4:9])
print(ls[4:])
print(ls[:])
print(ls[::1])
print(ls[::2])
print(ls[1::2])
# 步长是负数代表 从右侧往左, 将列表反转
print(ls[::-1])
上一篇:学习笔记——线段树合并


下一篇:2021-11-13