python 基础知识第2周day1(9.22)
大概内容:
1、列表的相关操作
1.数学运算符 :+ 、* “”" 1)列表 1+列表 2:将两个列表中的元素合并产生一个新的列表 例如:[x,y,z]+[m,n]–>[x,y,z,m,n]
- 列表 * N/N *列表:列表中的元素重复N次产生一个新的列表
“”"
nums1 = [1, 2, 3]
nums2 = [4, 5]
print(nums1+nums2)
print(nums1+nums1)
print(nums1*2)
print(nums2*4)
print(nums2*0)
2.比较运算符:,!=,>,<,>=,<= “”" 1),!= 2)>,<,>=,<= - 比较的是第一对不相等的元素的大小。(从前往后相同位置上的元素为一对。相等应的是一对) 列表1 > 列表2
“”"
print([1, 2, 3] == [1, 2, 3])
print([1, 2, 3] == [3, 2, 1])
print([1, 2, 34, 56] > [4, 3])
print([1, 100, 1000] > [1, 200, 0])
3.in 和 not in “”" 元素 in 列表 - 判断列表中是否存在指定元素 元素 not in 列表 - 判断列表中是否不存在指定元素 “”"
print(10 in [10, 11, 23])
print(100 in [12, 13, 10])
print([10, 20] in [10, 20, 30])
print([10, 20] in [[10, 20], 30])
A = [1, 'a', 4, 90, 1]
B = ['a', 8, 'j', 1]
C = []
for x in A:
if x in B and x not in C:
C.append(x)
print(C)
names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
new_names = []
for name in names:
if name not in new_names:
new_names.append(name)
print(new_names)
scores = [90, 89, 23, 67, 99, 96, 56, 78, 91, 45]
new_scores = []
for score in scores:
if score > 90:
new_scores.append(score)
print(new_scores)
scores = [90, 89, 23, 67, 99, 96, 56, 78, 91, 45]
for score in scores:
if score < 60:
scores.remove(score)
print(scores)
scores = [90, 89, 23, 67, 99, 96, 56, 78, 91, 45]
new_scores = []
for score in scores:
if score >= 60:
new_scores.append(score)
print(new_scores)
2、列表相关函数
- max 和 min
“”" max(序列) - 获取序列中元素的最大值 min(序列) - 获取序列中元素的最小值
注意:序列中的元素之间必须支持比较大小的操作 “”"
nums = [78, 23, -9, 34, 89, 54]
print(max(nums))
print(min(nums))
2.最大值,最小值的套路 最大值
nums = [78, 23, -9, 34, 89, 54]
max1 = nums[0]
for x in nums[1:]:
if x > max1:
max1 = x
print(max1)
最小值
min1 = nums[0]
for x in nums[1:]:
if x < min1:
min1 = x
print(min1)
3.sum - 求数字和
“”" sum(数学序列) - 计算序列中所有元素的和 “”"
nums = [78, 23, -9, 34, 89, 54]
print(sum(nums))
4.sorted (排序) “”" sorted(序列) - 将序列中的元素从小到大(升序)排序,产生一个新的列表 sorted(序列,reverse=True) - 将序列中的元素从大到小(降序)排序,产生一个新的列表 “”"
《流畅的Python》
nums = [78, 23, -9, 34, 89, 54]
new_nums = sorted(nums)
print(new_nums)
nums = {78, 23, -9, 34, 89, 54}
new_nums = sorted(nums)
print(sorted(nums))
new_nums = sorted(nums,reverse=True)
print(new_nums)
5.reversed - 倒序 new_nums = reversed(nums)
5.len - 统计元素个数
“”" len(序列) - 统计序列中元素的个数 “”"
print(len(nums))
print(len('abc'))
6.list “”" list(数据) - 将指定的数据转换成列表(所有的序列可以转换成列表;是将序列中的元素作为列表的元素) “”"
print(list('abc123'))
print(list(range(3)))
print(list([3, 2, 1]))
7.enumerate 枚举 “”" [10,20,30]–>[(0,10),(1,20),(2,30)] for 变量1,变量2 in enumerate(列表): 变量1是每个元素的下标 变量2是每个元素 “”"
nums = [78, 23, -9, 34, 89, 54]
for index, item in enumerate(nums):
print(index, item)
seq = [10,20,30]
for x in seq:
print(x)
seq = [[10,2], [20,2], [30,3]]
for x,y in seq:
print(x,y)
3、列表相关方法
方法:列表.xxx list #ctrl 点进去 1…列表.clear() - 清空列表
nums = [20, 99, 78, 'abc']
list.clear(nums)
print(nums)
2.列表.copy() - 复制原列表产生一个一模一样的新列表 “”" 如果之间用一个变量给另外一个变量赋值,赋的是地址。赋值后两个变量指向的是同一个数据。 注意:列表[:]、列表*1、列表+1[]的功能和列表.copy()的效果一样 “”"
list1 = [10, 'abc', 100]
list2 = list1.copy()
print(list2)
list1.append(10000)
print(list1, list2)
print(id(list1), id(list2))
list1 = [10, 'abc', 100]
list2 = list1
print(list2)
list1.append(1000)
list2.append(203)
print(list1, list2)
print(id(list1), id(list2))
3.列表.count(元素) - 统计指定元素在列表中出现的次数
nums = [0, 1, 9, 10, 11, 10, 12, 11, 10]
print(nums.count(10))
print(nums.count(100))
4.列表.extend(序列) - 将序列中的元素全部添加到列表中
nums = [100, 200]
scores = [90, 12, 89, 13, 67]
nums.extend(scores)
print(nums)
nums.extend('abc')
print(nums)
nums.append('abc')
print(nums)
5.列表.index(元素) - 获取元素的下标值(0开始的下标) 注意:如果元素不存在会报错,如果元素有多个返回最前面的那一个元素的下标
nums = [0, 1, 9, 10, 11, 10, 12, 11, 10]
print(nums.index(9))
print(nums.index(11))
names = ['张三', '李思', '赵二', '赵二']
print(names.index('李思'))
print(names.index('赵二'))
6.列表.reverse() - 将列表中的元素逆序(倒序)
names = ['张三', '李思', '赵二', '赵二']
names.reverse()
print(names)
列表.sort() - 将列表中的元素从小到大排序(直接修改原列表中元素的顺序,不会产生新的列表) 列表.sort(reverse=True) - 将列表中的元素从大到小排序(直接修改原列表中元素的顺序,不会产生新的列表)
nums = [0, 1, 9, 10, 11, 10, 12, 11, 10]
nums.sort()
print(nums)
nums.sort(reverse=True)
print(nums)
4、列表推导式(重要)
1.列表推导式 - 创建列表的快捷方式 “”" 语法1:[将序列中的元素按照统一的规则整体变换] [表达式 for 变量 in 序列] 相当于: list1 = [] for 变量 in 序列: list1.append(表达式)
语法2:(对序列中的元素进行筛选/删除) [表达式 for 变量 in 序列 if 条件语句] 相当于: list1 = [] for 变量 in 序列: if 条件语句: list1.append(表达式)
“”"
list1 = [10 for x in range(3)]
print(list1)
list2 = [x for x in range(3)]
print(list2)
list3 = [x*10+2 for x in range(3)]
print(list3)
nums = [12, 33, 7, 9]
new_nums = [x*10 for x in nums]
print(new_nums)
nums = [12, 33, 7, 9]
new_nums1 = [x%10 for x in nums]
print(new_nums1)
nums = [12,33,7,9]
list4 = [x for x in nums if x % 2]
print(list4)
scores = [89, 34, 56, 90, 56, 78, 99]
new_scores = [x for x in scores if x >=60]
print(new_scores)
语法3: [三目运算符 for 变量 in 序列]
补充:三目运算符 c的三目运算符- ?: 表达式1?值1:值2
Python的三目运算符 值1 if 表达式 else 值2 - 如果表达式的值为True,整个运算的结果是值1,否则是值2 “”"
age = 18
result = '成年' if age >= 18 else '未成年'
print(result)
nums = [20, 34, 33, 6, 15, 7, 20]
new_nums1 = [x*2 if x % 2 else x//2 for x in nums]
print(new_nums1)
new_nums2 = [x if x % 2 else x//2 for x in nums]
print(new_nums2)
|