python(基础)list列表的基本使用和功能&随机数

一、列表list

1. 概述

特点:有序,元素不唯一

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

2. list的基本使用
2.1 创建列表

语法:列表名【标识符】 = [元素1,元素2.。。。。]

代码演示:

#1.创建列表
#1.1创建一个空列表
list1 = []
print(list1)

#1.2创建一个带有元素的列表
ages = [1, 2, 3, 4, 5]
ages = [1, 2, [3, 4],True, 5]  # 可以存不同类型的元素
2.2 获取元素

语法:列表名[索引]

代码演示

ages = [1, 2, 3, 4, 5]
print(ages[0])
print(ages[1])
# print(ages[5])    # 报错:列表下标越界 IndexError: list index out of range
print(ages[-1])     # 倒数第一个
print(ages[-2])     # 倒数第三个
2.3 获取列表长度
print(len(ages))
2.4 遍历列表
ages = [11, 22, 33, 44, 55]
for n in ages:
    print(n)  # 元素

for i in range(len(ages)):
    print(ages[i])  # 元素

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

# 从后往前遍历
for i in range(len(ages)-1, -1, -1):
    print(i, ages)
2.5 切片,截取
#切片,截取  [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] 隔一个取
2.6 重复
print([1,2,3]*3)  # [1, 2, 3, 1, 2, 3, 1, 2, 3]
2.7判断列表成员
print(4 in ages)        # True
print(4 not in ages)    # False
2.8 合并列表
print([1,2,3]+[4,5,6])  # [1, 2, 3, 4, 5, 6]
2.9 删除列表元素
ages = [1,2,3,4,5,6,7,8,9]
del ages[0]
print(ages)  # [2, 3, 4, 5, 6, 7, 8, 9]
3 列表的方法

列表的方法主要就是一些增、删、改、查等操作

3.1 添加元素

append():在列表末尾插入一个元素
insert(index,args): 在指定位置插入一个元素
extend():将一个列表中的每一个元素都添加到列表末尾

代码演示:

# append(): 在列表的末尾插入元素
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)
3.2 删除元素

pop(index):根据下标删除对应的元素,默认是删除最后一个
remove(n):删除指定的第一个元素
del: 删除列表,删除不干净,不建议用
clean(): 清空列表中的所有元素

代码演示:

# pop(i):根据下标删除对应的元素
start = ["海绵宝宝", "派大星", "蟹老板", "章鱼哥", "珊迪"]
# start.pop()    # ['海绵宝宝', '派大星', '蟹老板', '章鱼哥']
n = start.pop(1)     # ['海绵宝宝', '蟹老板', '章鱼哥', '珊迪']
print(start)
print(n)             # 派大星    n 是删除的那个元素

# remove(n):删除指定的第一个元素
nums = [1, 2, 3, 3, 2, 2, 3, 2, 1]
nums.remove(2)    # [1, 3, 3, 2, 2, 3, 2, 1]
print(nums)

# del:删除不彻底
nums = [1,2,3,4,5,6,7]
nums2 = nums
# del nums
# print(nums)    # NameError: name 'nums' is not defined
# print(nums2)   # del 只是删除变量名字,内容并没有删除,还存在地址中

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

# clean():清空列表
nums = [1,2,3,4,5,6,7]
nums.clear()
print(nums)  # []
3.3 修改元素
nums = [1,2,3,4,5,6,7]
nums[0] = 11
print(nums)
3.4 查

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

代码演示:

# index(): 找到列表中第一次出现元素的下标,如果不存在报错
l = [1,2,3,4,5,67,8,9]
print(l.index(2))    # 1

# 统计指定元素在列表中出现的次数
nums = [1, 2, 3, 3, 2, 2, 3, 2, 1]
print(nums.count(2))  # 3
3.5 排序

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

代码演示:

# sort(): 升序(从小到大),会改变原列表
ages = [1,3,4,-6,5, 88,2]
ages.sort()
print(ages)    # [-6, 1, 2, 3, 4, 5, 88]

# sort(reverse=True): 降序(从大到小),会改变原列表
ages = [1,3,4,-6,5, 88,2]
ages.sort(reverse=True)
print(ages)   # [88, 5, 4, 3, 2, 1, -6]

# sorted(): 升序(从小到大), 不会改变原列表
ages = [1,3,4,-6,5, 88,2]
ages2 = sorted(ages)
print(ages,ages2)  # [1, 3, 4, -6, 5, 88, 2] [-6, 1, 2, 3, 4, 5, 88]

# sorted(reverse=True):  升序(从小到大), 不会改变原列表
ages = [1,3,4,-6,5, 88,2]
ages2 = sorted(ages, reverse=True)
print(ages,ages2)  # [1, 3, 4, -6, 5, 88, 2] [88, 5, 4, 3, 2, 1, -6]

# 倒序/逆序/反转
ages = [1,3,4,-6,5, 88,2]
# print(ages[::-1])         # [2, 88, 5, -6, 4, 3, 1]

# reverse(): 倒序会改变原列表
ages.reverse()
print(ages)                 # [2, 88, 5, -6, 4, 3, 1]

# reversed(): 倒序,不会改变原列表
ages = [1,3,4,-6,5, 88,2]
ages2 = reversed(ages)
print(ages,list(ages2))    # [1, 3, 4, -6, 5, 88, 2] [2, 88, 5, -6, 4, 3, 1]
print(id(ages),id(ages2))  # 1448518400904 1448519147984
3.6 浅拷贝和深拷贝

copy() :浅拷贝, 只能拷贝第一层,二维列表拷贝不了
copy.deepcopy():深拷贝,内容完全拷贝

# 浅拷贝/浅复制
nums1 = [1,2,3]
nums2 = nums1.copy()
nums1[1] = 99
print(nums1)                 # [[1, 99, 3]
print(nums2)                 # [1, 2, 3]

# 深拷贝/深复制
num3 = [1, 2, 3, [4, 5, 6]]
num4 = num3.copy()  # 浅拷贝, 只能拷贝第一层,二维列表拷贝不了
num3[1] = 99
num3[-1][1] = 100
print(num3)                 # [1, 99, 3, [4, 100, 6]]
print(num4)                 # [1, 2, 3, [4, 100, 6]]

import copy
num3 = [1, 2, 3, [4, 5, 6]]
num4 = copy.deepcopy(num3)     # 深拷贝,二位列表内容也被复制
num3[-1][1] = 100
print(num3)                # [1, 2, 3, [4, 100, 6]]
print(num4)                # [1, 2, 3, [4, 5, 6]]

二、随机数

import random
randint(start, stop)::从范围【start, stop】中随机取一个数,特例:两边都包含
randrange(start, stop)::从范围【start, stop)中随机取一个数
choice():从指定的列表中(序列)随机获取一个
random(): 从范围【0,1)中随机取一个小数
shuffle():打乱列表

代码演示:

# randint(start, stop): 从范围【start, stop】中随机取一个数,特例:两边都包含
# randrange(start, stop): 从范围【start, stop)中随机取一个数
print(random.randint(1,5))         #  范围 1 2 3 4 5
print(random.randrange(1,10,2))    # 范围 1 3 5 7 9

# choice(): 从指定的列表中(序列)随机获取一个
start = ["海绵宝宝", "派大星", "蟹老板", "章鱼哥", "珊迪"]
print(random.choice(start))   

# 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)
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值