Day8笔记-随机数功能&列表基本操作

一、列表进阶

1.列表系统功能【重点掌握】
函数说明
len(list)获取列表元素个数
max(list)返回列表元素最大值
min(list)返回列表元素最小值
list(seq)将元组转换为列表
list.append(obj)在列表末尾添加新的对象
list.count(obj)统计某个元素在列表中出现的次数
list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(seq)从列表中找出某个值第一个匹配项的索引位置
list.insert(index,obj)将对象插入列表
list.pop(index)移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj)移除列表中某个值的第一个匹配项
list.reverse()反向列表中元素
list.sort(key=None,reverse=False)对原列表进行排序
list.copy()复制列表
list.clear()清空列表
1.1增
​
# 注意:列表是可变的,所以涉及到列表元素的增删改的系统功能,都是在原列表内部进行的
​
# 1.list.append(obj)在列表末尾添加新的对象,特点:obj表示任意类型   *******
list1 = [1,2,3]
print(list1)
# 正确写法
list1.append(66)
print(list1)  # [1, 2, 3, 66]
# 错误写法
# r = list1.append(77)
# print(r)  # None
​
list1.append([4,5,6])
print(list1)  # [1, 2, 3, 66, [4, 5, 6]]
print(list1[-1])
​
list1.append('abc')
print(list1)  # [1, 2, 3, 66, [4, 5, 6], 'abc']
​
print('*' * 50)
​
# 2.list.extend(iterable)在列表末尾一次性追加另一个序列中的多个值(用新列表中的元素扩展原来的列表)
# list += [x1,x2....]
# 特点:extend(iterable),iterable包括字符串,列表,元组,字典,集合,range()等
list2 = [1,2,3]
print(list2)
​
# list2.extend(True)
# print(list2)  # TypeError: 'int' object is not iterable
​
list2.extend('abc')
print(list2)   # [1, 2, 3, 'a', 'b', 'c']
​
list2.extend([4,5,6])
print(list2)   # [1, 2, 3, 'a', 'b', 'c', 4, 5, 6]
​
# 3.list.insert(index,obj)将数据插入到列表的指定索引处,原元素向后顺延,
# 特点:obj表示任意类型,同append,如果追加或插入的是iterable,则作为一个整体添加到原列表
list3 = [1,2,3]
print(list3)
​
list3.insert(0,'abc')
print(list3)  # ['abc', 1, 2, 3]
​
list3.insert(2,[45,78,9])
print(list3) # ['abc', 1, [45, 78, 9], 2, 3]
​
list3.insert(2,66)
print(list3)
1.2删
# 1.list.remove(obj)移除列表中某个值的第一个匹配项   *******
list1 = [34,6,7,6,90,6,88,199]
print(list1)
# 注意1:remove执行一次,只能删除从左往右的第一个元素
list1.remove(6)
print(list1)
​
list1 = [34,6,7,6,90,6,88,199]
for _ in range(3):
    list1.remove(6)
print(list1)
​
# 注意2:在实际使用中,建议尽量先判断元素是否存在,然后执行删除的操作
num = 17
# list1.remove(num)  # ValueError: list.remove(x): x not in list
if num in list1:
    list1.remove(num)
​
# 2.list.pop(index)移除列表中的一个元素(默认最后一个元素),并且返回该元素的值  ******
list2 = [34,6,7,6,90,6,88,199]
print(list2)
​
# 注意1:默认移除列表中的最后一个元素
list2.pop()
print(list2)
​
# 注意2:也可以指定索引,移除列表中指定索引处的元素
list2.pop(1)
print(list2)
​
# 注意3:pop表示弹出,remove表示删除,
r = list2.pop()
print(list2)
print(r)  # 88
​
# 错误写法
# r = list2.remove(6)
# print(r)  # None
​
# 3.list.clear()清空列表
list3 = [34,6,7,6,90,6,88,199]
print(list3)
​
list3.clear()
print(list3)
​
# 4.del list[index]
list4 = [34,6,7,6,90,6,88,199]
print(list4)
​
del list4[0]   # 等价于list4.pop(0)
print(list4)
​
# 问题:del list4和list4.clear()的作用相同吗
"""
del list4:表示删除列表,列表本身不存在
list4.clear():只是清空列表,列表本身是存在的
"""
1.3改
# 1.list.sort(key=None,reverse=False)对原列表进行排序       ******
​
# 注意:默认情况下,列表中的元素相互之间可以比较大小的情况下,才能执行排序
​
# 升序
list1 = [24,46,2,56,8,9,100,45,7,8]
print(list1)
list1.sort()
print(list1)
​
# 降序
list1 = [24,46,2,56,8,9,100,45,7,8]
print(list1)
list1.sort(reverse=True)
print(list1)
​
# 2.list.reverse()反向列表中元素               ******
list2 = [24,46,2,56,8,9,100,45,7,8]
print(list2)
list2.reverse()
print(list2)
1.4查
list1 = [34,6,7,6,90,6,88,199]
print(list1)
​
# 1.len(list)获取列表元素个数       ********
print(len(list1))
​
# 2.max(list)返回列表元素最大值
print(max(list1))
​
# 3.min(list)返回列表元素最小值
print(min(list1))
​
# 4.list.count(obj)统计某个元素在列表中出现的次数  ******
c = list1.count(6)
print(c)
for _ in range(c):
    list1.remove(6)
print(list1)
​
# 5.list.index(obj)从列表中找出某个值第一个匹配项的索引位置
list1 = [34,6,7,6,90,6,88,199]
print(list1)
i = list1.index(6)
print(i)
​
# index()实现的原理
for i in range(len(list1)):
    if list1[i] == 6:
        print(i)
        break
​
# 如果要获取一个数据在列表中重复出现的索引,则循环遍历
for i in range(len(list1)):
    if list1[i] == 6:
        print(i)
        
list1[a:n:x]表示索引为a到n-1中的元素,步长为x。注意,这里的范围是左闭右开,即包含起始索引,不包含结束索引。
print(list1[4:7])表示打印列表names中索引为4到6的元素。
print(list1[2:11:2])表示打印列表中索引2-10的元素,步长为2
print(list1[-3:]) 表示打印列表最后的三个元素
2.列表推导式【重点掌握】

列表推导式,就是指的轻量级循环创建列表的方式

列表推导式/列表生成式:是Python特有的语法,通过循环和if语句专门用来创建列表特点:根据一个已知的Iterable,使用一行代码实现简单的逻辑,生成一个新的列表

语法:[新列表中元素的规律 for循环 if判断]工作原理:指定for循环,获取已知iterable中的元素,结合if进行判断,最终得到新的列表中元素的规律作用:生成列表

"""
语法:[新列表中元素的规律 for循环 if判断]
工作原理:指定for循环,获取已知iterable中的元素,结合if进行判断,最终得到新的列表中元素的规律
作用:生成列表
"""
​
# 1.已知列表numlist = [34,6,7,8,23,6],生成一个新的列表,新列表中的元素是numlist中元素的2倍
numlist = [34,6,7,8,23,6]
list11 = []
for num in numlist:
    list11.append(num * 2)   # list11 += [num * 2]
print(list11)
​
list12 = [num * 2 for num in numlist]
print(list12)
​
# 2.将1~100中3或7的倍数挑出来,生成一个新的列表
list21 = []
for num in range(1,101):
    if num % 3 == 0 or num % 7 == 0:
        list21.append(num)
print(list21)
​
list22 = [num for num in range(1,101) if num % 3 == 0 or num % 7 == 0]
print(list22)
​
# 练习:已知列表list1 = [34,56,72,5,67,8,1,5,678],将其中的偶数挑出,生成一个新的列表
list1 = [34,56,72,5,67,8,1,5,678]
new_list = [n for n in list1 if n % 2 == 0]
print(new_list)
​
# 3.在列表推导式中,for语句和if语句根据需求可以书写多个,从左往右表示嵌套
# a.
list31 = [a + b for a in 'abc' for b in '123']
print(list31)  # 9
​
# 等价于:
list31 = []
for a in 'abc':
    for b in '123':
        list31.append(a + b)
print(list31)   # 9
​
# b
list32 = [n for n in range(100) if n % 3 == 0 if n % 5 == 0]
​
# 等价于
list32 = []
for n in range(100):
    if n % 3 == 0:
        if n % 5 == 0:
            list32.append(n)
print(list32)
3.二维列表

# 1.元素的访问
# 一维列表
list1 = [34,7,True,'abgaf',345.678]
print(list1)
print(list1[0])
print(list1[-1])

# 二维列表
# 二维列表的处理思路:当作一维列表处理
list2 = [[34,6,78],[34,6],[23,76,87,9,0]]
print(len(list2))
print(list2[0])
print(list2[-1])

print(list2[1][1])
print(list2[-1][-2])

# 2.遍历
list2 = [[34,6,78],[34,6],[23,76,87,9,0]]

for sublist in list2:
    for num in sublist:
        print(num)

for i in range(len(list2)):
    for j in range(len(list2[i])):
        print(list2[i][j])

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值