列表进阶-day6

列表进阶

01列表相关操作

1.数学运算:+、*

列表1 + 列表2 - 将列表1和列表2中的元素合并成一个新的列表

列表 * N、N * 列表 - N个指定列表合并成一个新的列表(列表中的元素重复N次产生一个新的列表)

用法如下:

list1 = [10, 20, 30]
list2 = [100, 200]
result = list1 + list2
print(result)       # [10, 20, 30, 100, 200]

result = list1 * 3
print(result)       # [10, 20, 30, 10, 20, 30, 10, 20, 30]

2.比较运算符:<、>、>=、<=、==、!=

1)比较相等:==、!=

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

2)比较大小: <、>、>=、<=
两个列表比较大小,比较的是第一对不相等的元素的大小。

list1 = [20, 300, 400, 500]
list2 = [21, 2]
print(list1 > list2)        # False
print([10, 3, 300, 400] < [10, 4, -100])        # True
# print([10, 3, 300, 400] < [10, '4', -100])    # TypeError: '<' not supported between instances of 'int' and 'str'

3.in 和 not in

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

print(10 in [100, 200, 300])        # False
print(10 in [[10, 20], 30])         # False
print(10 in [10, 20, 30])           # True
# 练习:已知一个列表保存了多个学生的姓名,要求去掉列表中重复的名字
names = ['小明', '张三', '李四', '张三', '张三', '小明', '王五', '王五']

# 方法1:
new_names = []
for name in names:
    if name not in new_names:
        new_names.append(name)
print(new_names)        # ['小明', '张三', '李四', '王五']

# 方法2:
names = ['小明', '张三', '李四', '张三', '张三', '小明', '王五', '王五']
count = len(names)
for x in range(count):
    last_item = names.pop(-1)
    if last_item not in names:
        names.insert(0, last_item)
print(names)        # ['小明', '张三', '李四', '王五']

# 练习:提取两个列表的公共元素,产生一个新的列表
# 公共元素:[10, 23]
A = [10, 23, 89, 67, 10, 20]
B = [78, 90, 23, 88, 10]
C = []
for x in A:
    if x in B and x not in C:
        C.append(x)
print(C)

02相关函数

1. sum-列表

sum(列表) - 求列表中所有元素的和(要求列表中所有的元素都必须是数字)

scores = [29, 34, 8.9, 98, 99]
print(sum(scores))      # 268.9

print(sum(range(1, 101)))       # 5050

2. max、min

max(列表) - 求列表中值最大的元素
max(数据1, 数据2, 数据3,…) - 求多个数据中的最大值

scores = [29, 34, 8.9, 98, 99, 72]
print(max(scores))      # 99
print(min(scores))      # 8.9

a, b, c = 100, 30, 200
print(max(a, b, c))
print(min(a, b, c))

3. sorted

sorted(列表) - 将列表中的所有的元素从小到大排序,产生一个新的列表(不会修改原列表)
sorted(列表, reverse=True) - 将列表中的所有的元素从大到小排序,产生一个新的列表(不会修改原列表)

scores = [29, 34, 8.9, 98, 99, 72]
new_scores = sorted(scores)
print(new_scores)       # [8.9, 29, 34, 72, 98, 99]

new_scores = sorted(scores, reverse=True)
print(new_scores)       # [99, 98, 72, 34, 29, 8.9]

4. list(序列)

将指定数据转换成列表(数据必须是容器型数据类型的数据)
所有的序列都可以转换成列表;转换的时候会将序列中的元素作为列表的元素

print(list('abc'))      # ['a', 'b', 'c']
print(list(range(3)))       # [0, 1, 2]

03列表相关方法

1.列表.clear()

清空列表

nums = [29, 78, 9, 23]
print(nums)
nums.clear()
print(nums)         #[]

2.列表.copy()

复制指定的列表产生一个一模一样的新列表并且返回

3.列表.count(元素)

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

A = [29, 78, 9, 23, 100, 9]
print(A.count(10))      # 0
print(A.count(9))       # 2

4.列表.extend(序列)

将序列中的元素全部添加到列表的最后

A = [29, 78, 9, 23]
print(A)        # [29, 78, 9, 23]
A.append([10, 20])
print(A)        # [29, 78, 9, 23, [10, 20]]


A = [29, 78, 9, 23]
print(A)        # [29, 78, 9, 23]
A.extend([10, 20])
print(A)        # [29, 78, 9, 23, 10, 20]

A = [29, 78, 9, 23]
print(A)
A.append('abc')
print(A)        # [29, 78, 9, 23, 'abc']


A = [29, 78, 9, 23]
print(A)
A.extend('abc')
print(A)        # [29, 78, 9, 23, 'a', 'b', 'c']

5.列表.index(元素)

获取指定元素在列表中的下标值(0开始的下标值)

A = [29, 78, 9, 23, 9]
print(A.index(78))      # 1
print(A.index(9))       # 2
# print(A.index(1))     # 报错!

6.列表.reverse()

将列表倒序

A = [29, 78, 9, 23, 9]
A.reverse()
print(A)        # [9, 23, 9, 78, 29]

7.列表.sort

sorted产生一个新的列表(不会修改原列表),sort不会产生新的列表(会修改原列表)

A = [29, 78, 9, 23, 9]
new_A = sorted(A)
print(new_A, A)     # [9, 9, 23, 29, 78] [29, 78, 9, 23, 9]

A = [29, 78, 9, 23, 9]
A.sort()
print(A)        # [9, 9, 23, 29, 78]

04列表推导式

1.结构1:

[表达式 for 变量 in 序列]
功能:创建列表,列表中的元素就让变量去序列中取值,取一个值就计算一次表达式的结果,这个结果就是列表的元素

result = [10 for x in range(4)]
print(result)       # [10, 10, 10, 10]

result = [10*x for x in range(4)]
print(result)       # [0, 10, 20, 30]

# 练习1:提取nums中所有元素的个位数
nums = [78, 34, 661, 90, 75]
# [8, 4, 1, 0, 5]
result = [x % 10 for x in nums]
print(result)

2.结构2:

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

创建一个列表,列表的元素就是变量去序列中取值,取一个值判断一次条件是否成立,成立就计算一次表达式的结果,并且将结果作为列表的元素

result = [x for x in range(10) if x < 6]
print(result)       # [0, 1, 2, 3, 4, 5]

result = [x for x in range(10) if x % 2 != 0]
print(result)       # [1, 3, 5, 7, 9]


# 提取nums中所有的偶数
# [78, 34, 90]
nums = [78, 34, 661, 90, 75]
result = [x for x in nums if x % 2 == 0]
print(result)       # [78, 34, 90]

# 提取nums中所有的偶数的个位数
# [8, 4, 0]
nums = [78, 34, 661, 90, 75]
result = [x%10 for x in nums if x % 2 == 0]
print(result)       # [8, 4, 0]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值