学习Python(4)列表&布尔值和空值&数学函数和随机数的使用

学习Python(4)列表&布尔值和空值&数学函数和随机数的使用

list 列表

概述:

变量:使用变量存储数据,但是,缺点:一个变量每次只能存储一个数据 
思考:如果一次性存储多个数据,怎么做?
解决:采用列表 
作用:列表相当于是一个容器,可以同时存储多个数据 
本质:列表是一种有序的集合 
说明:有序指的就是有顺序【数据的存放的顺序和底层存储的顺序是相同的】

list列表的基本使用

语法:变量名 = 列表
列表名称 = [数据1,数据2, ...]
说明:使用[ ]表示创建列表
列表中存储的数据被称为元素
列表中的元素被从头到尾自动进行了编号,编号从0开始,这个编号被称为索引,角标或者下标
索引的取值范围:0~元素的个数 -1【列表的长度 -1】
超过索引的范围:列表越界

创建列表:

ages = [1, 2, 3, 4, 5]
# ages2 = [1, 2, [3,4], True, "abc"]  # 可以是不同类型的元素

列表的索引/下标

print(ages[0])
print(ages[1])
print(ages[2])
print(ages[3])
print(ages[4])
# print(ages[5])  # 报错: 列表下标越界 IndexError: list index out of range
print(ages[-1])  # 倒数第1个
print(ages[-2])  # 倒数第2个

列表长度

print(len(ages))

遍历列表

ages = [11, 22, 33, 44, 55]
for n in ages:
    print(n)  # 元素

for i in range(len(ages)):
    print(i, ages[i])  # 下标

# enumerate(): 枚举/列举
for i,n in enumerate(ages):
    print(i, n)  # 下标和元素

# 从后往前遍历
for i in range(len(ages)-1, -1, -1):
    print(i, ages[i])

切片, 截取 [start:stop:step] => 范围[start, stop) 包含start,不包含stop

ages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(ages[:])  # [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(ages[3:])  # [4, 5, 6, 7, 8, 9]
print(ages[:4])  # [1, 2, 3, 4]
print(ages[4:7])  # [5, 6, 7]
print(ages[::-1])  # 倒序 [9, 8, 7, 6, 5, 4, 3, 2, 1]
print(ages[::2])  # [1, 3, 5, 7, 9]
print(ages[4:1:-1])  # [5, 4, 3]

列表重复

print([1,2,3] * 3)  # [1, 2, 3, 1, 2, 3, 1, 2, 3]

合并列表

print([1,2,3] + [4,5,6])  # [1, 2, 3, 4, 5, 6]

删除列表

ages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
del ages[0]
print(ages)  # [2, 3, 4, 5, 6, 7, 8, 9]

判断列表的成员

ages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(4 in ages)  # True
print(4 not in ages)  # False

list列表的功能

数学功能

ages = [1, 3, 4, -6, 5, 88, 2]
print(max(ages))  # 最大数
print(min(ages))  # 最小数
print(sum(ages))  # 求和

排序
sort(): 升序(从小到大), 会改变原列表
sort(reverse=True): 降序(从大到小), 会改变原列表

ages = [1, 3, 4, -6, 5, 88, 2]
# ages.sort()  # [-6, 1, 2, 3, 4, 5, 88]
ages.sort(reverse=True)  # [88, 5, 4, 3, 2, 1, -6]
print(ages)

sorted(): 升序(从小到大), 不会改变原列表
sorted(reverse=True): 降序(从大到小), 不会改变原列表

ages = [1, 3, 4, -6, 5, 88, 2]
# ages2 = sorted(ages)
ages2 = sorted(ages, reverse=True)
print(ages, ages2)

倒序/逆转/逆序/反转

ages = [1, 3, 4, -6, 5, 88, 2]
print(ages[::-1])

reverse(): 倒序, 会改变原列表

ages.reverse()
print(ages)

reversed(): 倒序, 不会改变原列表

ages = [1, 3, 4, -6, 5, 88, 2]
ages2 = reversed(ages)
print(ages, list(ages2))
print()

拷贝
数据类型:

基本类型/不可变类型: int, float, bool, str, tuple, None, bytes
引用类型/可变类型: list, dict, set

赋值问题

# 不可变类型的赋值, 没有关联
a = 100
b = a
a = 99
print(a, b)  # 99 100

# 可变类型的赋值, 有关联
nums1 = [1, 2, 3]
nums2 = nums1
nums1[1] = 99
print(nums1, nums2) # [1, 99, 3] [1, 99, 3]

浅拷贝/浅复制

nums1 = [1, 2, 3]
nums2 = nums1.copy()
nums1[1] = 99
print(nums1, nums2) # [1, 99, 3] [1, 2, 3]

深拷贝/深复制

nums3 = [1, 2, 3, [4, 5, 6]]
nums4 = nums3.copy()  # 浅拷贝, 只能拷贝第一层
# nums3[1] = 99
# print(nums3, nums4)
# [1, 99, 3, [4, 5, 6]]   [1, 2, 3, [4, 5, 6]]

nums3[-1][1] = 100
print(nums3, nums4) # [1, 2, 3, [4, 100, 6]]   [1, 2, 3, [4, 100, 6]]

import copy
nums3 = [1, 2, 3, [4, 5, 6]]
nums4 = copy.deepcopy(nums3)  # 深拷贝, 拷贝所有层
nums3[-1][1] = 100
print(nums3, nums4)  # [1, 2, 3, [4, 100, 6]]   [1, 2, 3, [4, 5, 6]]

list列表增删改查

重点掌握:

 增: append, insert, extend
 删: pop, remove

: 插入元素

append(n): 在列表的末尾插入元素

nums = [2, 3, 4]
nums.append(5)
print(nums)  # [2, 3, 4, 5]

insert(i, n): 在列表的指定下标位置插入元素

nums = [2, 3, 4]
# nums.insert(0, 5)  # [5, 2, 3, 4]
nums.insert(2, 5)  # [2, 3, 5, 4]
print(nums)

extend(): 将另一个列表中的每个元素都添加到列表末尾

nums = [2, 3, 4]
nums.extend([5, 6, 7])  # [2, 3, 4, 5, 6, 7]
# nums.append([5, 6, 7])  # [2, 3, 4, [5, 6, 7]]
print(nums)


pop(i): 根据下标删除对应的元素, 默认删除最后一个元素

stars = ["宝强", "乃亮", "伊琍", "羽凡", "霆锋"]
# stars.pop()  # ['宝强', '乃亮', '伊琍', '羽凡']
n = stars.pop(1)  # ['宝强', '伊琍', '羽凡', '霆锋']
print(stars)
print(n)  # n是删除的那个元素

remove(n): 删除指定的第一个元素

nums = [1, 2, 2, 2, 2, 3, 3, 4]
nums.remove(2)  # [1, 2, 2, 2, 3, 3, 4]
print(nums)

统计指定元素在列表中出现的次数

print(nums.count(2))

删除所有指定元素

for _ in range(nums.count(2)):
    nums.remove(2)
print(nums)

del: 删除不彻底

nums = [1,2,3,4,5,6,7]
# nums2 = nums
# del nums
# print(nums2)

del nums[2:5]
print(nums)  # [1, 2, 6, 7]

clear(): 清空列表

nums = [1,2,3,4,5,6,7]
nums.clear()
print(nums)  # []

nums = [1,2,3,4,5,6,7]
nums[0] = 99
print(nums)  # [99, 2, 3, 4, 5, 6, 7]

print(nums[0])

index(): 找到列表中第一次出现指定元素的下标, 如果不存在则报错

l = [1,2,3,4,2,2,2,2,4]
print(l.index(2))
# print(l.index(20))

布尔值和空值

布尔值

一个布尔类型的变量一般有两个值,True,False

作用:用于分支和循环语句中作为条件判断
案例:

#Boolean
b1 = True
b2 = False

#条件表达式或者逻辑表达式结果都是布尔值
print(4 > 5)
print(1 and 0)

空值

Python中的一种特殊的数据类型,使用None表示

区别与0:0是数字类型,None本身就是一种数据类型
案例:

#空值
n = None
print(n)   #None

数学函数和随机数的使用

重点掌握:

 数学函数: max, min, abs, round, sqrt
 随机数: randint, randrange, random, choice

数学函数

abs(x):  absolute 求x的绝对值
max(): 求最大值
min():求最小值
pow(n,m):求一个数的多少次幂
round(x,n):返回浮点数x的四舍五入值,如果给出n值,则表示舍入到小数点后几位

案例:

print(max([1, 2, 3, 1]))
print(min([1, 2, 3, 1]))
print(abs(-2))  # 绝对值, 2
print(round(34.46))  # 34
print(round(34.46, 1))  # 34.5

math模块:
引包:

import math

案例:

import math
print(math.pow(2, 4), 2**4, pow(2, 4))  # 16.0 16 16
print(math.ceil(3.1))  # 向上取整, 4
print(math.floor(3.9))  # 向下取整, 3
print(math.sqrt(81))  # 开平方, 9

随机数

引包:

import random

randint(start, stop): 从范围[start, stop]中随机取一个数

print(random.randint(1, 3))

randrange(start, stop, step): 从范围[start, stop)中随机取一个数

print(random.randrange(1, 10, 2))  # 范围: 1,3,5,7,9

choice(): 从指定的列表中(序列)随机获取一个

stars = ['周杰伦', '林俊杰', '陈奕迅', '王力宏', '华晨宇']
print(random.choice(stars))

random(): 从范围[0,1)中随机取一个小数

print(random.random())
print(random.uniform(2, 4))  # 从[2,4] 取一个随机小数

shuffle(): 将列表打乱

l = [1,2,3,4,5]
random.shuffle(l)  # 将列表打乱
print(l)

猜你喜欢

转载自blog.csdn.net/qq_43284558/article/details/107574747
今日推荐