6 列表知识

6 列表知识

1.列表切片操作

list1 = [1,2,4,3,8]
num = list1[2]
print(num) 
print(list1[5])  #下标越界,引发IndexError, 需要自己确定不要越界

list1 = ['杨超越', '热巴', '佟丽娅', '杨幂', '赵丽颖', '刘亦菲', '黑嘉嘉', 100, 99.9]
print(list1[3:6])  # 将截取的结果再次保存在一个列表中  ['杨幂','赵丽颖','刘亦菲']
print(list1[-3:-1])  # ['黑嘉嘉', 100]
print(list1[::2])  # 步长 ['杨超越', '佟丽娅', '赵丽颖', '黑嘉嘉', 99.9]
print(list1[-5:-1:2])  # ['赵丽颖', '黑嘉嘉']
print(list1[-1::-1])  # [99.9, 100, '黑嘉嘉', '刘亦菲', '赵丽颖', '杨幂', '佟丽娅', '热巴', '杨超越']
print(list1[-1::-2])  # [99.9,'黑嘉嘉','赵丽颖','佟丽娅','杨超越']

2.列表的通用操作

#1.列表组合  将两个列表拼接为一个列表
#直接使用加号
list1 = [43,65,76,6]
list2 = [45,77,90,11,2,4,66]
print(list1 + list2)  #[43,65,76,6,45,77,90,11,2,4,66]  产生一个新列表

#2.列表重复
#直接使用乘号 列表内容重复指定遍数,产生一个新列表
print(list1 * 2)  # [43,65,76,6,43,65,76,6]

#3.成员操作
#成员运算符:in      not in
#运算的结果为布尔值
list3 = ["hello",False,189,"good"]
print(189 in list3) #True
print(180 not in list3)  #True

#4.列表长度
print(len(list1))

#5.列表最大值和最小值、求和
print(max(list1))
print(min(list1))
print(sum(list1))

#6.列表count,index函数
list1 = [8, 2, 15, 2, 7, 1, 2]
print(list1.count(2))   # 数列表里面2的个数 3
print(list1.index(15))  # 数列表里面15对应的下标 2

3.列表的增删改查

3.1 增加元素

# 1. list.append(obj) 在列表末尾添加新的元素,单一添加
list1 = [10,20,30]
list1.append(40) #可以是普通元素 
print(list1)     # [10,20,30,40] 
list1.append([50,60]) #也可以是其它列表、元组、字典、集合等对象
print(list1)     # [10,20,30,40,[50, 60]]

# 2. list.extend(obj)  在列表的末尾一次性追加另一个列表中的元素,可以多个添加
#obj不能是单个数值,可以是列表等可迭代对象
list1 = [10,20,30]
list1.extend([70,80])  #只是将元素添加到list1末尾
print(list1)	# [10, 20, 30, 70, 80]

list1 = [10,20,30]
list1.extend("999")  #只是将元素添加到l1末尾
print(list1)	# [10, 20, 30, '9', '9', '9']

# 3. list.insert(i,obj) 在指定下标i的位置插入一个新元素,原来的元素后移,不会覆盖
list1 = [10,20,30]
list1.insert(1,-20)
print(list1)    #[10, -20, 20, 30, 70, 80]
list1.insert(0,[1,2,3])
print(list1)   #[[1, 2, 3], 10, -20, 20, 30, 70, 80]

3.2 删除元素

#1. list.pop(i) 删除指定下标的元素,如果下标越界,会出现IndexError
list1 = [10, 20, 30]
value = list1.pop()   #删除最后一个元素,并返回该元素的值  30
print(value)    # 30
print(list1)    # [10, 20]
list1.pop(0)   # 删除下标为0的元素
print(list1)   # [20]

#2. list.remove(x) 删除列表中第一个值等于x的元素,删除的时候是从左向右找到第一个等于x的元素删除
list1 = [10, -20, 30]
list1.remove(-20)
print(list1)    # [10, 30]
# list1.remove(100) 如果列表中没有该值,会引起错误:ValueError

#3.按下标删除
list1 = [10, 20, 30]
del list1[0]
del list1[0:2]  # 删除第一个和第二个元素

#3 list.clear()  清空列表
list1 = [10, 20, 30]
list1.clear()
print(list1)  # []

3.3 修改元素

# 语法:列表名[索引] = 新的元素值

list1 = [10, 20, 30]
list1[2] = 888
print(list1)     # [10, 20, 888]

3.4 查找元素

#1. list.index(x,start,end) 在[start  end)范围内查找第一个等于x的元素的下标
#参数说明: x 要查找的元素; start,开始下标;end 结束下标,不包含结束下标
#返回值:如果有值等于x的元素,返回其下标,如果不存在值等于x的元素,会引发ValueError
list1 = [10, 20, 30]
print(list1.index(10))    # 0
print(list1.index(20, 0, 2))  # 1

#2 list.count(x) 查找列表中x出现的次数,如果没有x,返回0
list1 = [10, 20, 30, 10]
print(list1.count(10))   # 2
print(list1.count(99))   # 0 不存在99

4 遍历列表

列表的遍历就是访问列表的每一个元素,可以使用while循环和for-in循环。经常使用for-in循环遍历列表
for-in语法:

for 变量名 in 列表:
     语句 A
else:
     语句 B

说明:主要用于遍历序列【遍历:依次访问序列中的每一个元素,获取元素值】
工作原理:按照顺序获取列表中的每个元素,赋值给变量,再执行语句A,以此类推,直到列表中的元素全部获取为止,循环终止后执行else语句块。
- 不要在for-in循环中添加或删除元素


# 只能获取元素,不能得到元素的下标
for value in list1:
	print(value,end=' ')
	
# index表示下标,num表示元素值
# enumerate将列表变成一个索引序列,同时包含下标和数据
for index,num in enumerate(list1):
    print(index,num)

# 二维列表的遍历,循环嵌套
list1 = [[1, 2], [3, 4], [5, 6]]
for elem in list1:
    for value in elem:
        print(value, end=' ')
    print()

5 枚举

#index表示下标,num表示元素值
#enumerate将可迭代的容器变成一个索引序列,同时包含下标和数据
for index,num in enumerate(list1):
    print(index,num)

for index,num in enumerate(str1):
    print(index,num)

for index,num in enumerate(set1):
    print(index,num)

6 列表排序

#把列表元素逆序排列
list1 = [10, 20, 30, 10]
result = list1[:: -1]
print(result)     # [10, 30, 20, 10]

list1 = [10, 20, 30, 10]
list1.reverse()
print(list1)     # [10, 30, 20, 10]

list1 = [10, 20, 30, 10]
list1.sort()   # 升序排列
print(list1)   # [10, 10, 20, 30]

list1 = [10, 20, 30, 10]
list1.sort(reverse = True)    # 降序排列
print(list1)    # [30, 20, 10, 10]

list1 = [10, 20, 30, 10]
list2 = sorted(list1)
print(list2)     # [10, 10, 20, 30]

7.随机数

import random

函数名函数说明
choice(seq)返回一个序列(列表、元组,字符串)中返回一个随机元素
randrange(start,end,step)start 指定范围的起始值 包含本身 end 指定范围的结束值 不包含本身 step 步长
randint()返回一个随机整数
shuffle(seq)将序列元素随机排列(打乱顺序)

8.算法-----冒泡排序法

list1 = [8, 9, 15, 2, 7, 1, 50]
for i in range(len(list1)):
    for j in range(i+1, len(list1)):
        if list1[i] > list1[j]:
            list1[i], list1[j] = list1[j], list1[i]
print(list1)

9.列表作业

"""
1.写出一段Python代码实现删除一个list里面的重复元素

list1 = [22, 88, 33, 77, 7, 22, 12, 96, 88]
list2 = []
for i in range(len(list1)):
    if list1[i] not in list2:
        list2.append(list1[i])
print(list2)
"""


"""
2.键盘输入多个人名保存到一个列表中,如果里面有重复的则提示此姓名已经存在

list1 = []
while True:
    user_input = input("请输入姓名:")
    if user_input not in list1:
        list1.append(user_input)
    else:
        print("该用户已经存在")
"""


"""
3.两个列表[1,5,7,9]和[2,2,6,8]合并并排序 结果为:[1,2,2,3,6,7,8,9]

list1 = [1, 5, 7, 9]
list2 = [2, 2, 6, 8]
list3 = list1 + list2
list3.sort()
print(list3)    # [1, 2, 2, 5, 6, 7, 8, 9]
list1.extend(list2)
list1.sort()
print(list1)    # [1, 2, 2, 5, 6, 7, 8, 9]
"""


"""
4.[[6,3],[8,4,2],[5,6,1]] 转存到一个新的列表中并排序。结果为[1,2,3,4,5,6,6,8]

list1 = [[6, 3], [8, 4, 2], [5, 6, 1]]
list2 = []
for i in range(len(list1)):
    for j in range(len(list1[i])):
        list2.append(list1[i][j])
list2.sort()
print(list2)    # [1, 2, 3, 4, 5, 6, 6, 8]
"""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值