day7-列表2

1. 增删改

1.1 增

增:添加元素

  1. 列表.append(元素):在指定的列表后面添加指定的元素(不会产生新的列表,而是直接在原列表中添加)
heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
print(heroes)

heroes.append('剑圣')
print(heroes)

heroes.append('琴女')
print(heroes)

# 案例:提取scores中所有不及格的分数
scores = [89, 45, 99, 65, 93, 81, 29, 88, 76, 59, 66]
new_scores = []
for i in scores:
    if i < 60:
        new_scores.append(i)
print(new_scores)

# 利用append删除列表中所有的奇数
num = [89, 45, 99, 65, 93, 81, 29, 88, 76, 59, 66]
new_num = []
for x in num:
    if x % 2 == 0:
        new_num.append(x)
print(new_num)

# 利用append将scores中所有不及格的分数改成'补考'
scores = [89, 45, 99, 65, 93, 81, 29, 88, 76, 59, 66]
new_scores = []
for i in scores:
    if i < 60:
        new_scores.append('补考')
    else:
        new_scores.append(i)
print(new_scores)
  1. 列表.insert(下标, 元素):将指定元素插入到列表中指定下标对应的元素前
heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
print(heroes)

heroes.insert(-1, '亚索')
print(heroes)

heroes.insert(0, '石头人')
print(heroes)
1.2 删

删:删除元素

  1. del 列表[下标]:删除列表指定对应的元素
heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
print(heroes)

del heroes[1]
print(heroes)

del heroes[1]
print(heroes)
  1. 列表.remove(元素):删除列表中的指定元素(如果元素不存在会报错;如果元素有多个,只删最前面那一个)
heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
print(heroes)

heroes.remove('小炮')
print(heroes)
  1. 列表.pop():取出列表最后一个元素,并且返回

    列表.pop(下标):取出列表中指定下标对应的元素,并且返回

heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
print(heroes)

result1 = heroes.pop()
print(heroes, result1)

result2 = heroes.pop(0)
print(heroes, result2)
1.3 改

改:修改元素的值

列表[下标] = 新元素: 将列表中指定下标对应的元素改成新元素

heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
print(heroes)

heroes[1] = '孙悟空'
print(heroes)

# 练习:将scores中所有低于60分的成绩改成0分
scores = [89, 45, 99, 65, 93, 81, 29, 88, 76, 59, 66]
for i in range(len(scores)):
    if scores[i] < 60:
        scores[i] = 0
print(scores)

scores = [89, 45, 99, 65, 93, 81, 29, 88, 76, 59, 66]
for index, item in enumerate(scores):
    if item < 60:
        scores[index] = 0
print(scores)

2. 列表修改操作

2.1 列表加法运算

列表1 + 列表2: 将两个列表合成一个新的列表

A = [10, 20, 30]
B = [100, 200]
C = A + B       # [10, 20, 30, 100, 200]
print(C)
print(A + A)    # [10, 20, 30, 10, 20, 30]
2.2 列表乘法运算

列表 * N、N * 列表:将列表中的元素重复N次产生新的列表

C = A * 2
print(C)        # [10, 20, 30, 10, 20, 30]

print(B * 3)    # [100, 200, 100, 200, 100, 200]

print(['小明', '小华'] * 3)     # ['小明', '小华', '小明', '小华', '小明', '小华']
2.3 列表比较运算
  1. 比较是否相等:==、!=
print([10, 20, 30] == [30, 20, 10])     # False
print([10, 20, 30] == [10, 20, 30])     # True
  1. 比较大小:<、>、<=、>=

列表1 > 列表2

两个列表比较大小,比较的是第一对不相等的元素大小(相同位置的元素是一对)

print([10, 20, 30] > [1, 100, 200, 300, 400])       # True
print([10, 20, 30] > [10, 2, 30, 40])               # True
  1. in 和 not in

元素 in 列表:判断列表是否存在指定的元素

元素 not in 列表:判断列表中是否不存在指定的元素

print(10 in [10, 20, 30])           # True
print(10 in [[10, 20], 30])         # False
print([10, 20] in [10, 20, 30])     # False

# 练习:已知列表A和B,打印列表中A和B的公共元素
A = ['后羿', '甄姬', '鲁班7号', '赵云']
B = ['小乔', '孙悟空', '猪八戒', '后羿', '盾山', '赵云']
C = []
for value in A:
    if value in B:
        C.append(value)
print(C)

3. 列表相关函数

3.1 sum

sum(数字序列):求数字序列中所有元素的数值和

scores = [98, 23, 56, 88, 90, 70]
result = sum(scores)
print(result)

print(sum(range(101)))
3.2 max、min

max(序列) - 求序列中的最大元素

min(序列) - 求序列中的最小元素

scores = [98, 23, 56, 88, 90, 70]
print(max(scores))
print(min(scores))
3.3 sorted
  1. sorted(序列):将序列中的元素按照从小到大的方式排序,创建一个新的列表并返回
scores = [98, 23, 56, 88, 90, 70]
result = sorted(scores)
print(result)
  1. sorted(序列,reverse=True):将序列中的元素从大到小的方式排序,创建一个新的列表并且返回
scores = [98, 23, 56, 88, 90, 70]
result = sorted(scores, reverse=True)
print(result)
3.4 len

len(序列):统计序列中元素的个数

print(len(scores))
print(len('abc123'))
print(len(range(1, 100, 2)))
3.5 list

list(序列):将指定的序列转换成列表(任何序列都可以转换成列表,转换的时候直接将序列中的元素作为列表的元素)

result = list('abc123')
print(result)

result = list(range(5))
print(result)

4. 列表相关方法

4.1 clear

列表.clear():清空列表

nums = [10, 9, 89, 23]
print(nums)

nums.clear()
print(nums)
4.2 count

列表.count(元素):统计列表中指定元素的个数

nums = [10, 9, 89, 23, 10]
print(nums.count(10))
print(nums.count(100))
print(nums.count(9))
4.3 extend

列表.extend(序列):将序列中的元素全部添加到列表中

list1 = [10, 20]
list1.extend([100, 200])
print(list1)
list1.extend('abcdef')
print(list1)
4.4 index

列表.index(元素):获取列表中指定元素对应下标

nums = [10, 9, 89, 23, 10]
# print(nums.index(100))    # 报错
print(nums.index(89))
print(nums.index(10))       # 0
4.5 reverse

列表.reverse

nums = [10, 9, 89, 23, 10]
nums.reverse()
print(nums)
4.6 sort

列表.sort():将列表中的元素从小到大排序(直接修改原列表元素的顺序)

列表.sort(reverse=True):将列表中的元素从大到小排序

nums = [10, 9, 89, 23, 10]
result = nums.sort()
print(nums)         # [9, 10, 10, 23, 89]
print(result)       # None

nums = [10, 9, 89, 23, 10]
nums.sort(reverse=True)
print(nums)         # [89, 23, 10, 10, 9]

# sorted(序列) - 将列表中的元素从小到大排序(不修改原序列中的元素的顺序,而是创建一个新的列表)
nums = [10, 9, 89, 23, 10]
result = sorted(nums)
print(nums)         # [10, 9, 89, 23, 10]
print(result)       # [9, 10, 10, 23, 89]

5. 列表赋值问题

python中的变量保存数据,保存的是数据在内存中的地址(python中的变量全部是指针变量)

# 需求:已知一个列表,要创建和原列表一模一样的新的列表
nums = [10, 20, 30, 40]

# 1) 直接赋值 - 一个变量直接给另外一个变量赋值,赋的是地址,赋值后两个变量指向的是同一块内存
nums2 = nums
print('nums:', nums)
print('nums2:', nums2)

# 2) 拷贝 - 一个变量通过拷贝的方式给另外一个变量赋值,赋值的时候会线复制变量中的数据,创建一个新的数据,然后将新的数据对应的内存地址给新的变量
nums3 = nums*1
print('nums3:', nums3)

nums4 = nums + []
print('nums4:', nums4)

nums5 = nums[:]
print('nums5:', nums5)

nums6 = nums.copy()
print('nums6:', nums6)

nums.append(100)
nums2.append(200)
print('nums:', nums)
print('nums2:', nums2)
print('nums3:', nums3)
print('nums4:', nums4)
print('nums5:', nums5)
print('nums6:', nums6)
'''
nums: [10, 20, 30, 40, 100, 200]
nums2: [10, 20, 30, 40, 100, 200]
nums3: [10, 20, 30, 40]
nums4: [10, 20, 30, 40]
nums5: [10, 20, 30, 40]
nums6: [10, 20, 30, 40]
'''

6. 列表推导式

列表推导式的作用:快速创建列表的表达式(代码简洁)

  1. 列表推导式结构1

    a. 语法:[表达式 for 变量 in 序列]

    b. 让变量去序列中取值,一个一个的取,取完为止,每取一个值就计算一次表达式的 结果,并且将计算结果作为列表的一个元素

result = [10 for i in range(5)]
print(result)       # [10, 10, 10, 10, 10]

result = [i*2 for i in range(5)]
print(result)       # [0, 2, 4, 6, 8]

# 案例1:将nums中所有的元素乘以2
nums = [10, 20, 30, 40]
result = [i*2 for i in nums]
print(result)

# 案例2:获取nums中所有的元素的个位数
nums = [45, 65, 58, 656]
result = [x % 10 for x in nums]
print(result)
  1. 列表推导式结构2

    a. 语法:[表达式 for 变量 in 序列 if 条件语句]

    b. 让变量去序列中取值,一个一个的取,取完为止,每取一个值就判断一次条件是否 成立,如果成立就计算表达式作为列表的元素

result = [x*2 for x in range(5) if x % 2 == 0]
print(result)

# 案例1:删除scores中所有不及格的分数
scores = [80, 99, 23, 67, 56, 82, 76, 45]
result = [i for i in scores if i >= 60]
print(result)

# 案例2:提取nums中所有奇数的个位数
nums = [103, 230, 89, 67, 78]
result = [i % 10 for i in nums if i % 2]
print(result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值