元祖和数字
1.列表相关操作
1.列表的数学运算:+, *
列表1 + 列表2 - 将两个列表中的元素合并产生一个新的列表;(不会修改原列表)
列表N、N列表 - N是正整数;列表中的元素重复N次产生一个新列表
加法运算
print([1, 2, 3] + [10, 20, 30])
乘法运算
print([1, 2, 3] * 3)
2.列表的比较运算:==, !=,>,<,>=,<=
列表1 == 列表2、列表1 != 列表2
两个列表比较大小,不是比较列表的长度,而是比较元素的大小
print([1, 2, 3] == [2, 1, 3])
补充:is的用法
== → 判断两个数据的值是否相等
is → 判断两个数据的地址是否一样
list1 = [1, 2, 3]
list2 = [1, 2, 3]
print([list1 is list2)
3.in和not in
元素 in 列表 - 判断列表中是否存在指定的元素
元素 not in 列表 - 判断列表中是否不存在指定的元素
print(60 in [23, 45, 12, 70])
4.内置函数:max(序列),min(序列),sum(序列),len(序列),list(数据)
max和min要求序列中的元素类型必须一致;并且元素支持比较运算符
sum要求序列中的元素必须是数字
list - 只有容器型数据类型才能转换成列表;将序列中的元素作为列表的元素产生一个新列表
print(max([23, 45, 78, 90, 32, 45]))
print(min([23, 45, 78, 90, 32, 45]))
print(sum([23, 45, 78, 90, 32, 45]))
print(sum(range(1, 101)))
print(list('abc'))
print(list(range(5)'))
2.列表方法
1.列表.count(元素) - 统计列表中指定元素的个数
nums = [1, 2, 3, 4, 5, 6, 7, 8, 7, 9]
print(nums.count(7))
2.列表.extend(序列) - 将序列中的元素添加到列表的最后
nums = [1, 2, 3]
nums.extend([10, 20])
nums.extend('hello')
nums.extend(range(100, 105))
print(nums)
3.列表.index(元素) - 获取元素在列表中的正下标(如果元素有多个只取第一个)
nums = [23, 89, 101]
print(nums.index(89))
4.列表.reverse() - 让列表倒序(不会产生新的列表)
nums = [23, 89, 101]
nums.reverse()
5.排序
列表.sort() - 将列表中的元素从小到大排序
列表.sort(reverse=True) - 将列表中的元素从大到小排序
注意:列表中的元素类型必须一样,并且元素支持比较运算符;不会产生新的列表
nums = [23,89, 60, 89, 60, 1, 60, 23, 1]
nums.sort(reverse=True)
内置函数:sorted
sorted(序列) - 对序列中的元素从小到大排序,产生一个新的列表
nums = [11, 60, 32]
#按个位数大小排序
nums.sort(key= lambda num: num % 10)
new_nums = sorted(nums)
6.清空列表
nums = [23, 89, 60, 89, 60, 1, 60]
nums.clear()
7.列表.copy() - 和列表[:]的效果一样,复制列表中的元素产生一个新的列表;这儿的拷贝是浅拷贝
nums = [23, 89, 60, 89, 60, 1, 60]
new_nums = nums.copy()
3.元祖
元祖就是不可变的列表
1.
元祖是容器型数据类型(序列),将()作为容器的标志,多个元素用逗号隔开:(元素1,元素2,元素3)
特点:不可变(不支持增删改),有序的(支持下标操作)
2.元祖中元素 - 和列表要求一样
元祖的表示
单个元素的元祖
#表示一个元素的元祖,一定要有逗号
tuple1 = ('abc',)
单独表示一个元祖值的时候,小括号可以省略
tuple1 = 1, 2, 3, 4
tuple2 = 1,
获取元祖中的元素
列表中获取元素的方式元祖都支持
注意:元祖切片的结果是元祖
weeks = '周一', '周二', '周三', '周四', '周五', '周六', '周日'
print(weeks[1], weeks[-1])
for index in range(len(weeks)):
print(index, weeks[index])
获取部分元素
变量1, 变量2, 变量3,... = 元祖
用变量去获取元祖中的值(要求前面变量的个数和元祖中元素的个数一致)
tuple1 = (10, 20, 30)
x, y, z = tuple1
语法
多个变量某一个变量前带乘号 = 元祖
让不带乘号的变量去元祖中获取元素,剩下的全部给带乘号的变量(带的变量会变成列表)
student = ('小明', 18, 'stu001', 23, 89, 90, 89)
name, age, study_id *scores = student
x, y, *z, m = student
print(scores, z)
4.数字
1.整型
所有的整数对应的类型就是整型,python3.x中整型对应的数据类型只有int,python2.x除了int还有long
int(数据) → 将数据转换成整数。所有的小数、布尔值和部分字符串可以转换成整数
字符串中去掉引号后本身就是一个整数的字符串才能转换成整型
print(int('45'), int('-123'))
2.浮点型
所有的小数对应的类型就是浮点型,浮点型对应的数据类型只有float;支持科学计数法;
字符串中去掉引号后本身就是一个浮点数的字符串才能转换成浮点型
print(float('23'))
3.布尔
布尔中True本质就是整数1,False本质是整数0
bool(数据) - 所有的数据都可以转换成布尔;所有为0为空的值都会转换成False,其它都会转换成True
print(1+1,True+1,bool(1.5),bool(''),bool([1,2]))
4.复数
由实部和虚部组成数字叫复数:a + bj(a是实部、b是虚部,j是虚数单位),对应的类型是complex;python直接支持复数的运算
虚部是1不能省略,实部0可以省略
num1 = 2 + 3j
num2 = 4 - 2j
print(num1 + num2)
print(num1 * num2)
5.随机模块
random:提供了和随机操作相关的方法
1.random.randint(M, N)(N可取到)
产生M~N的整数
2.random.random()
产生0~1的小数(1取不到)
3.random.randrange(M, N, step)
产生序列range(M, N, step)中的任意一个整数(N取不到)
4.random.choices(序列, k=N)
在序列中随机获取N个元素,以列表形式返回,N默认为1
5.random.shuffle(列表)
随机打乱列表内元素顺序
import random
import random
# 10也能取到
print(random.randint(0, 10))
print(random.random())
print(random.randrange(0, 10, 2))
print(random.choices([1, 2, 3, 5, 8], k=2))
List = [1, 2, 3, 5, 8, 7]
random.shuffle(List)
print(List)