学习python的第5天

列表和元组

一.列表元素的增删改

1.增 - 在列表中添加元素
  • 列表.append(元素) - 在列表的最后添加指定的元素(不会产生新的元素,只直接修改原列表)
names = ['路飞', '佐罗', '罗宾']
names.append('娜美')  
print(names)   # # ['路飞', '佐罗', '罗宾', '娜美']
names.append('乔巴')
print(names)   # ['路飞', '佐罗', '罗宾', '娜美', '乔巴']
  • 列表.insert(下标, 元素) - 在列表指定下标前插入指定的元素
names.insert(1, '乌索普')
print(names)  # ['路飞', '乌索普', '佐罗', '罗宾', '娜美', '乔巴']
names.insert(0, '山治')
print(names)  # ['山治', '路飞', '乌索普', '佐罗', '罗宾', '娜美', '乔巴']

-列表.extend(序列) - 将序列中所有的元素添加到列表的最后

sports = ['篮球', '足球', '乒乓球']
sports.extend(['羽毛球', '排球'])
print(sports)   # ['篮球', '足球', '乒乓球', '羽毛球', '排球']
2.删除 - 删除元素
  • del 列表[下标] - 删除列表中指定下标对应的元素(下标不能越界)
names = ['后裔', '王昭君', '伽罗', '败类守约', '甄姬']
del names[2]
print(names)  # ['后裔', '王昭君', '败类守约', '甄姬']

del names[-3]
print(names)   # ['后裔', '败类守约', '甄姬']
  • 列表.remove(元素) - 删除列表中指定元素(如果元素不存在会报错!;如果元素有多个只删除最前面的那一个)
names = ['后裔', '王昭君', '伽罗', '败类守约', '甄姬']
names.remove('伽罗')
print(names)   # ['后裔', '王昭君', '败类守约', '甄姬
  • 列表.pop() - 取出列表中的最后一个元素,返回的数据就是取出来的元素;列表.pop(下标) - 取出列表中指定下标对应的元素。
  • 列表.clear() - 删除列表中所有的元素
names = ['后裔', '王昭君', '伽罗', '败类守约', '甄姬']
names.clear()  # 效率比直接赋值为[]高
print(names)  # []

python中用一个变量直接给另一个变量赋值,赋的是变量中保存的地址。

3.改 - 修改列表元素的值

列表[下标] = 新元素 - 将列表指定下标对应的元素修改成新的元素。

movies = ['恐怖游轮', '致命ID', '忍者神龟', '赌圣', '雪国列车']
movies[-2] = '盗梦空间'
print(movies)  #['恐怖游轮', '致命ID', '忍者神龟', '盗梦空间', '雪国列车']

二.列表相关操作

1.列表的加法运算和乘法运算

列表1 + 列表2 - 将列表1和列表2合并产生一个新元素;
列表1 * N/N * 列表 - 列表中的元素重复N次产生一个新的列表(N是正整数)。
加法和乘法运算不会修改原列表。

2.比较运算
  • == , !=
print([10, 20, 30] == [20, 10, 30])  # False
print([10, 20, 30] == [10, 20, 30])  # True
  • <, >, <=, >=
    两个列表比较大小,比较的是第一对不相等的元素的大小(从前往后下标相同的元素为一对)。
print([100, 200, 300, 400] > [200, 100])  # False
print([100, 200, 300, 400] > [100, 50])  # True
print([1, 2, 3, 4] > [1, 2, 3])  # True
3.in 和 not in

元素 in 列表 - 判断指定元素是否在指定列表中
元素 not in 列表 - 判断指定元素是否不在指定列表中

4.系统函数:max/min/len/sorted/sum/list
  • len(序列) - 获取序列中元素的个数
pythons = ['小明', '张三', '小花', 'Bob', 'Tom']
print(len(pythons))    # 5
  • nax(序列)/min(序列) - 求序列中元素的最大值/最小值
scores = [89, 78, 56, 90, 87, 96, 45, 67]
print(max(scores))   # 96
print(min(scores))    # 45
  • sorted(序列) - 对序列中的元素从小到大排序,产生一个新的列表。(不会修改原序列)
new_scores = sorted(scores)
print(scores)   # [89, 78, 56, 90, 87, 96, 45, 67]
print(new_scores) # [45, 56, 67, 78, 87, 89, 90, 96]
  • sorted(序列, reverse=True) - 对序列中的元素从小到大排序,产生一个新的列表。(不会修改原列表)
new_scores = sorted(scores, reverse=True)
print(new_scores)   # [96, 90, 89, 87, 78, 67, 56, 45]
  • sum(序列) - 求序列中所有元素的和(序列中的元素必须都是数字)
sum1 = sum(scores)
print('和', sum1)   # 和 608
print('平均分:', sum(scores)/len(scores))   # 平均分: 76.0
print(sum(range(101)))   # 5050
  • list(序列) - 将指定的序列转换成列表
    所有的序列都可以转换成列表;将序列中的元素变成列表中的元素。
print(list('abc'))   # ['a', 'b', 'c']
print(list(range(4)))   # [0, 1, 2, 3]

这里是引用

四.列表相关的方法

1.列表.copy()

复制原列表产生一个一模一样的新列表(相当于 列表[:];浅拷贝)。

nums = [10, 20, 30]
scores = nums.copy()
print(scores)   # [10, 20, 30]
2.列表.count(元素)

统计列表中指定元素的个数

foods = ['大闸蟹', '小龙虾', '花甲', '包子', '油条', '小龙虾', '包子', '小龙虾']
print(foods.count('小龙虾'))  # 3
print(foods.count('包子'))      # 2
print(foods.count('大虾'))      # 0
3.列表.index(元素)

获取指定元素的下标(如果元素有多个返回第一个元素的下标;如果元素不存在会报错)。

foods = ['大闸蟹', '小龙虾', '花甲', '包子', '油条', '小龙虾', '包子', '小龙虾']
print(foods.index('花甲'))     # 2
print(foods.index('大闸蟹'))   # 0
print(foods.index('小龙虾'))   # 1
4.列表.reverse()

将指定列表逆序。

foods = ['大闸蟹', '小龙虾', '花甲', '包子', '油条', '小龙虾', '包子', '小龙虾']
foods.reverse()
print(foods)  # ['小龙虾', '包子', '小龙虾', '油条', '包子', '花甲', '小龙虾', '大闸蟹']
5. 列表.sort()

将列表中的元素从小到大排序(不会产生新的列表);
列表.sort(reverse=True) - 将列表中的元素从大到小排序(不会产生新的列表)。

ages = [56, 78, 12, 54, 13, 25]
ages.sort()
print(ages)  # [12, 13, 25, 54, 56, 78]

ages = [56, 78, 12, 54, 13, 25]
ages.sort(reverse=True)
print(ages)   # [78, 56, 54, 25, 13, 12]

原组:元组就是不可变的列表:列表中除了增删改的操作,其他元组都支持.
元组(tuple):(元素1, 元素2, 元素3, …)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值