一、列表
1.列表的数学运算:
列表1 + 列表2——将两个列表中的元素合并产生一个新列表,不会修改源列表
列表 * N 、 N * 列表——N是正整数,列表元素重复三次产生新列表,不会修改原列表
print([1, 2, 3] + [10, 20, 30])
print([1, 2, 3] * 3)
2.列表的比较运算:
列表1 == 列表2、列表1 != 列表2、列表1 > 列表2
两个列表比较大小是比较元素的大小,相同位置比较
print([1, 2, 3, 4, 5] > [2, 3]) # False
补充:is的用法
== ——判断两个数据的值是否相等
is ——判断两个数据的地址是否一样
list is list2 相当于 id(list1) == id(list2)
3. in和not in
元素 in 列表 ——判断列表中是否存在指定元素
元素 not in 列表 ——判断列表中是否不存在指定元素
4. 内置函数:
max(序列)、min(序列)、sum(序列)、len(序列)、list(序列)
max 和 min要求序列中的元素类型必须一致,并且元素支持比较运算符
sum 要求序列中的元素必须是数字
list 只有容器型数据类型才能转换成列表
print(max([1, 2, 3, 4, 5]))
print(min([1, 2, 3, 4, 5]))
print(sum([1, 2, 3, 4, 5]))
print(sum(range(1, 101)))
print(list('abc'))
for x in list('abc'):
print(x, end='')
5.列表.count(元素)
——统计列表中指定元素的个数
nums = [23, 45, 56, 23, 2, 5, 5]
print(nums.count(23))
6..列表.extend(序列)
——将序列中的元素添加到列表的最后,没有返回值
print(nums.extend([1, 3]))
print(nums)
7.列表.index(元素)
——获取元素在列表中的正下标,只取第一个(如果有多个)
print(nums.index(23))
8.列表.reverse()
——让列表倒叙(不会产生新的列表)
nums.reverse()
print(nums)
9.列表.sort()
——将列表中的元素从小到大排序
10.列表.sort(reverse=True)
——将列表中的元素从大到小排序
注意:列表中的元素类型必须一样,并且元素支持比较运算符,不会产生新的列表
nums.sort(reverse=True)
print(nums)
11.sorted(序列)
——对序列中的元素从小到大排序,产生一个新的序列
12.sorted(序列,reverse=True)
——对序列中的元素从大到小排序,产生一个新的序列
new_nums = sorted(nums)
print(new_nums)
13.清空列表
nums.clear()
print(nums)
14.列表.copy()
和列表.[:]的效果一样,拷贝列表中的元素产生一个新的列表,这个拷贝都是浅拷贝
nums = [23, 45, 56, 23, 2, 5, 5]
new_nums = nums.copy() #地址不同
new_nums = nums[:] #地址不同
nums.append(111)
print(new_nums, nums)
二、元祖(tuple)
1.什么是元祖
1).元祖是容器型数据类型(序列),将()作为容器的标志,多个元素用逗号隔开,(元素1, 元素2, 元素3)
特点:不可变(不支持增删改),有序的(支持下标操作)
2).元祖就是不可变的列表
2.元祖的表示
1).单个元素的元祖
tuple1 = (111,)——必须加逗号
2).单独表示一个元祖值的时候,小括号可以省略
tuple1 = (111,)
print(tuple1, type(tuple1))
tuple1 = 1, 2, 3, 4
print(tuple1, type(tuple1))
3.获取元祖中的元素
列表中获取元素的方式都支持,切片的结果是元祖
用变量去获取元祖中元素的值,要求前面变量的个数和元祖中元素个数一致
1).获取单个元素
2).切片
3).遍历
4).获取部分元素:变量1,变量2,...= 元祖
5).语法:多个变量某一个变量前带 * =元祖
让不带的变量去元祖中获取元素,剩下的全部给带 * 的变量,
带 * 的变量会变成列表
weeks = '周一', '周二', '周三', '周四', '周五', '周六', '周日'
print(weeks[1:4])
a, b, c, d, e, f, g = weeks
print(a, b, c, d, e, f, g)
a, b, c, *d = weeks
print(a, b, c, d)
4.元祖相关操作:和列表一样
+、*、==、!=、in、not in、max、min、sum、tuple、len、sorted
三、数字:
int、float、bool、complex(负数)
1.int
所有的整数对应的类型就是整型
int(数据)——将数据转换成整数,所有的小数、布尔值、部分字符串可以转换成整数,字符串中只有去掉引号本身就是一个整数的字符串才能转换成整型
2.浮点型
所有的小数对应的类型就是浮点型,对应的数据类型只有float,支持科学计数法:2e-3
float(数据)——整型、布尔、部分字符串,字符串中只有去掉引号本身就是一个数字的字符串才能转换成浮点型
3.bool
所有的数据都可以转换成布尔,所有为0为空的值都会转换成False,其他位True
print(2e-3)
print(float(10 / 3))
print(bool(''), bool([]), bool(()), bool({}), bool(None))
num = 10
if not num % 2:
print('偶数')
4.复数
由实部和虚部组成的数字叫复数:a+bj,对应的类型是complex,python直接支持复数的运算
num1 = 2 + 3j
num2 = 4 - 2j
print(num1+num2)
print(num1*num2)
5.随机模块
import random
python中内置了一个random模块,提供了和随机操作相关的方法
1).random.randint(M,N)——产生M-N的整数
2).random.random()——产生0-1的随机小数,0可以取到,1取不到
3).random.randrange(M, N,step)——产生序列range(M, N,step)中的任意一个整数
4).random.choices(序列,k=n)——随机获取序列中n个元素,以列表形式返回,n默认是1
5).random.shuffle(列表)——随机打乱列表元素的位置
import random
print(random.randint(5, 100))
print(random.random())
print(random.randrange(0, 100, 2))
print(random.choices('aceds', k=2))