day7列表2

1 列表的增删改

1.1 增 - 添加元素

  1. 列表.append(元素) - 在指定列表的最后添加指定的元素(不会产生新的列表,而是直接在原列表中添加)

    heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
    print(heroes)
    
    heroes.append('剑圣')
    print(heroes)
    
    heroes.append('琴女')
    print(heroes)
    
    # 案例:提取scores中所有不及格的分数
    scores = [89, 45, 99, 65, 93, 81, 29, 88, 76, 59, 66]
    new_scores = []
    for s in scores:
        if s < 60:
            new_scores.append(s)
    print(new_scores)       # [45, 29, 59]
    
    # 练习1:利用append删除列表中所有的奇数
    nums = [89, 45, 99, 65, 93, 81, 29, 88, 76, 59, 66]
    # [88, 76, 66]
    new_nums = []
    for x in nums:
        if x % 2 == 0:
            new_nums.append(x)
    print(new_nums)
    
    
    # 练习2:利用append将scores中所有不及格的分数改成'补考'
    scores = [89, 45, 99, 65, 93, 81, 29, 88, 76, 59, 66]
    # [89, '补考', 99, 65, 93, 81, '补考', 88, 76, '补考', 66]
    new_scores = []
    for s in scores:
        if s < 60:
            new_scores.append('补考')
        else:
            new_scores.append(s)
    print(new_scores)
    
  2. 列表.insert(下标, 元素) - 将指定元素插入到列表中指定下标对应的元素前

    heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
    print(heroes)
    
    heroes.insert(-1, '亚索')
    print(heroes)
    
    heroes.insert(0, '石头人')
    print(heroes)
    

1.2 删 - 删除元素

  1. del 列表[下标] - 删除列表中指定下标对应的元素

    heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
    print(heroes)   # ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
    
    del heroes[1]
    print(heroes)   # ['寒冰射手', '维鲁斯', '金克斯', '小法', '卡牌', '蛇女']
    
    del heroes[1]
    print(heroes)   # ['寒冰射手', '金克斯', '小法', '卡牌', '蛇女']
    
    
  2. 列表.remove(元素) - 删除列表中的指定元素(如果元素不存在会报错;如果元素有多个,只删最前面那一个)

    heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '维鲁斯', '卡牌', '蛇女']
    print(heroes)
    
    heroes.remove('小炮')
    print(heroes)
    
    # heroes.remove('塔姆')       # ValueError: list.remove(x): x not in list
    
    heroes.remove('维鲁斯')
    print(heroes)       # ['寒冰射手', '金克斯', '小法', '维鲁斯', '卡牌', '蛇女']
    
    
  3. 列表.pop() - 取走列表最后一个元素,并且返回

    列表.pop(下标) - 取走列表中指定下标对应的元素,并且返回

    heroes1 = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '维鲁斯', '卡牌', '蛇女']
    print(heroes1)     # ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '维鲁斯', '卡牌', '蛇女']
    result1 = heroes1.pop()
    print(heroes1, result1)     # ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '维鲁斯', '卡牌']蛇女
    result2 = heroes1.pop(0)
    print(heroes1, result2)     # ['小炮', '维鲁斯', '金克斯', '小法', '维鲁斯', '卡牌']寒冰射手
    print(result1)
    print(result2)
    

1.3 改 - 修改元素

列表[下标] = 新元素 - 将列表中指定下标对应的元素改成新元素

heroes = ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '维鲁斯', '卡牌', '蛇女']
print(heroes)       # ['寒冰射手', '小炮', '维鲁斯', '金克斯', '小法', '维鲁斯', '卡牌', '蛇女']

heroes[1] = '孙悟空'
print(heroes)       # ['寒冰射手', '孙悟空', '维鲁斯', '金克斯', '小法', '维鲁斯', '卡牌', '蛇女']

练习:将scores中所有低于60分的成绩修改成0分(使用改)

# 方法1
scores1 = [89, 45, 99, 65, 93, 81, 29, 88, 76, 59, 66]
for i in range(len(scores1)):
    if scores1[i] < 60:
        scores1[i] = 0
print(scores1)

# 方法2
scores1 = [89, 45, 99, 65, 93, 81, 29, 88, 76, 59, 66]
for i, x in enumerate(scores1):
    if x < 60:
        scores1[i] = 0
print(scores1)

2 列表相关操作

2.1 列表加法运算

# 列表1 + 列表2 - 将两个列表合并成一个新的列表
a = [1, 2, 3, 4]
b = [12, 32, 23]
c = a + b
print(c)

2.2 列表乘法运算

# 列表 * N 、N * 列表   -   将列表中的元素重复N次产生一个新的列表
c = a * 3
print(c)
print(b * 2)

2.3 列表比较运算

# 1) 比较是否相等 ==、!=
print([12, 23, 34] == [12, 23, 34])
print([12, 23, 34] == [23, 12, 34])

# 2) 比较大小:>、<、<=、>=
# 列表1 > 列表2
# 两个列表比较大小,比较的是第一对不相等的元素的大小(相同位置上的元素是一对)
print([10, 2, 3] > [1, 123, 32, 23])
print([10, 2, 3] > [10, 123, 32, 23])

2.4. in 和 not in

# 元素 in 列表
# 元素 in 列表  -   判断列表中是否存在指定的元素
# 元素 not in 列表    -   判断列表中是否不存在指定的元素
print(10 not in [10, 2, 3])
print(10 in [10, 2, 3])
# 练习:已经列表A和B, 打印A和B的公共元素
A = ['后羿', '甄姬', '鲁班7号', '赵云']
B = ['小乔', '孙悟空', '猪八戒', '后羿', '盾山', '赵云']
C = []


for i in A:
    if i in B:
        C.append(i)
print(C)

3 列表相关函数

3. 1sum(数字序列) - 求数字序列中所有元素的值的和

scores = [89, 67, 67, 87, 98, 56]
num = sum(scores)
print(num)

print(sum(range(101)))

3.2 max、min

# max(序列)   -   求序列中的最大元素
# min(序列)   -   求序列中的最小元素
scores = [89, 67, 67, 87, 98, 56]
num1 = max(scores)
print(num1)

num2 = min(scores)
print(num2)

补充:求最大值的逻辑

假设第一个元素是最大值保存到变量中,然后依次取出后面的每个元素和保存最大值的变量进行比较,如果后面取出来的值比最大值还大,就更新最大值

scores = [50, 98, 23, 56, 88, 99, 70]
max1 = scores[0]
for x in scores[1:]:
    if x > max1:
        max1 = x        # 更新最大值
print(max1)

3.3 sorted

  1. sorted(序列) - 将序列中的元素按照从小到大的方式排序,创建一个新的列表并且返回

    scores = [50, 98, 23, 56, 88, 99, 70]
    result = sorted(scores)
    print(result)       # [23, 50, 56, 70, 88, 98, 99]
    
  2. sorted(序列, reverse=True) - 将序列中的元素按照从大到小的方式排序,创建一个新的列表并且返回

    scores = [50, 98, 23, 56, 88, 99, 70]
    result = sorted(scores, reverse=True)
    print(result)       # [99, 98, 88, 70, 56, 50, 23]
    
    

3.4 len

len(序列) - 统计序列中元素的个数

print(len(scores))          # 7
print(len('abc123'))        # 6
print(len(range(1, 100, 2)))    # 50

3.5 list

list(序列) - 将指定的序列转换成列表(任何序列都可以转换成列表,转换的时候直接将序列中元素作为列表的元素)

result = list('abc123')
print(result)       # ['a', 'b', 'c', '1', '2', '3']

result = list(range(5))
print(result)       # [0, 1, 2, 3, 4]

4 列表相关方法

列表.xxx()

4.1 列表.clear() - 清空列表

nums = [21, 32, 2312, 32]
print(nums)
nums.clear()
print(nums)

4.2 列表.count() - 统计列表中指定元素的个数

nums = [21, 32, 12, 32, 2312, 32]
print(nums.count(32))
print(nums.count(2))
print(nums.count(12))

4.3 列表.extend(序列) - 将序列中的元素全部添加到列表中

nums = [21, 32, 2312, 32]
nums.extend([122, 45, 34])
print(nums)
nums.extend('das1')
print(nums)

4.4 列表.index(元素) - 获取列表中指定元素的下标(返回的是从0开始的下标值)

nums = [21, 32, 2312, 32]
print(nums.index(32))
print(nums.index(21))

4.5 列表.reverse() - 将列表倒序

nums = [21, 32, 2312, 32]
nums.reverse()
print(nums)

4.6

列表.sort - 将列表中的元素从小到大排序(直接修改原列表的顺序)

nums = [21, 32, 2312, 32]
num = nums.sort()
print(nums)
print(num)

表.sort(reverse=True) - 将列表中的元素从大到小排序

nums = [21, 32, 2312, 32]
num = nums.sort(reverse=True)
print(nums)
print(num)

sorted(序列) - 将列表中的元素从小到大排序(不修改原序列中元素的顺序,而是创建一个新的列表)

nums = [21, 32, 2312, 32]
num1 = sorted(nums)
print(num1)

5 列表赋值问题

拷贝和直接赋值

需求:以知一个列表,现在需要创建一个和原列表一模一样的列表

  1. 直接赋值 - 个变量直接给另外一个变量赋值,赋的是地址,赋值后两个变量指向的是同一块内存
nums = [23, 32, 13, 12]
nums2 = nums
print(nums2)
print(nums)

nums.append(100)
print(nums)
print(nums2)
print(nums3)
  1. 拷贝 - 一个变量通过拷贝的方式给另外一个变量赋值,赋值时会先复制原来变量中的数据,创建一个性的数据,然后将新的数据给新的变量

    nums = [23, 32, 13, 12]
    nums3 = nums * 1
    print(nums3)
    
    nums4 = nums + []
    print(nums4)
    
    nums5 = nums[:]
    print(nums5)
    
    nums6 = nums.copy()
    print(nums6)
    

6 列表推导式

快速创建列表的表达式(代码简洁)

6.1 列表推导式结构1

  1. 语法:
    [表达式 for 变量 in 序列]

  2. 让变量去序列中取值,一个一个的取,取完为止,每取一个值就计算一次表达式的结果,并且将计算结果作为列表的一个元素

    result = [10 for x in range(5)]
    print(result)       # [10, 10, 10, 10, 10]
    
    result = [x*2 for x in range(5)]
    print(result)       # [0, 2, 4, 6, 8]
    
    # 案例1:将nums中所有的元素乘以2
    nums = [10, 23, 89, 67]
    result = [x*2 for x in nums]
    print(result)       # [20, 46, 178, 134]
    
    # 案例2:获取nums中所有元素的个位数
    nums = [103, 230, 89, 67]
    result = [x % 10 for x in nums]
    print(result)       # [3, 0, 9, 7]
    
    

    6.2 列表推导式结构2

    1. 语法:
      [表达式 for 变量 in 序列 if 条件语句]

    2. 让变量去序列中取值,一个一个的取,取完为止,每取一个值就判断一次条件是否成立,如果成立就计算表达式值作为列表的元素

      result = [x * 2 for x in range(5) if x % 2 == 0]
      print(result)     # [0, 4, 8]
      
      # 案例1:删除scores中所有不及格的分数
      scores = [80, 99, 23, 67, 56, 82, 76, 45]
      result = [x for x in scores if x >= 60]
      print(result)   # [80, 99, 67, 82, 76]
      
      # 案例2:提取nums中所有奇数的个位数
      nums = [103, 230, 89, 67, 78]
      result = [x % 10 for x in nums if x % 2 != 0]
      print(result)       # [3, 9, 7]
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种开源的关系型数据库管理系统,被广泛应用于Web应用程序的后台数据存储和管理。首次使用MySQL时,可以进行以下几个步骤: 1. 安装MySQL:首先需要下载并安装MySQL数据库服务器。可以从MySQL官方网站下载适合自己操作系统的安装包,并按照安装向导进行安装。 2. 启动MySQL服务:安装完成后,需要启动MySQL服务。在Windows系统中,可以在服务列表中找到MySQL服务并启动;在Linux系统中,可以使用命令行启动MySQL服务。 3. 连接到MySQL服务器:使用MySQL提供的客户端工具(如MySQL Shell、MySQL Workbench等)或命令行工具(如mysql命令)连接到MySQL服务器。需要提供正确的主机名、端口号、用户名和密码。 4. 创建数据库:连接到MySQL服务器后,可以使用SQL语句创建新的数据库。例如,可以使用以下语句创建一个名为"first_Day"的数据库: ``` CREATE DATABASE first_Day; ``` 5. 使用数据库:创建数据库后,可以使用以下语句选择要使用的数据库: ``` USE first_Day; ``` 6. 创建表:在选定的数据库中,可以使用SQL语句创建表格来存储数据。例如,可以使用以下语句创建一个名为"users"的表格: ``` CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age INT ); ``` 7. 插入数据:在创建表格后,可以使用INSERT语句向表格中插入数据。例如,可以使用以下语句向"users"表格中插入一条记录: ``` INSERT INTO users (name, age) VALUES ('John', 25); ``` 8. 查询数据:可以使用SELECT语句从表格中查询数据。例如,可以使用以下语句查询"users"表格中的所有记录: ``` SELECT * FROM users; ``` 9. 更新数据:使用UPDATE语句可以更新表格中的数据。例如,可以使用以下语句将"users"表格中id为1的记录的age字段更新为30: ``` UPDATE users SET age = 30 WHERE id = 1; ``` 10. 删除数据:使用DELETE语句可以删除表格中的数据。例如,可以使用以下语句删除"users"表格中id为1的记录: ``` DELETE FROM users WHERE id = 1; ``` 以上是MySQL的一些基本操作,希望对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值