菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

Python Set pop() 方法

Python3 列表 Python 集合


描述

pop() 方法用于移除并返回集合中的一个随机元素。如果集合为空,会抛出 KeyError 异常。

语法

pop() 方法语法:

set.pop()

参数

返回值

返回移除的元素。

实例

随机移除一个元素:

实例 1

fruits = {"apple", "banana", "cherry"} fruits.pop()print(fruits)

输出结果为:

{'apple', 'banana'}

输出返回值:

实例 1

fruits = {"apple", "banana", "cherry"} x = fruits.pop()print(x)

输出结果为:

banana

注意事项

  • 集合中的元素是无序的,因此每次调用 pop() 方法时,被移除的元素是随机的。
  • 如果需要移除特定的元素,应该使用 remove()discard() 方法,而不是 pop()

Python3 列表 Python 集合

AI 思考中...

4 篇笔记 写笔记

  1. #0

    我在学习过程中发现, set 集合的 pop() 方法, 不像上面所述的那样, 只是随机删除一个元素, 而是有一定的规律可循的, 我将我发现的规律总结如下:

    # 执行下面的代码,并查看输出结果:
    print('pop()函数的输出结果 看这里:')
    s1={4,2,1,5} # 集合里只有数字
    s2={'你','我','他'} # 集合里无数字
    s3={3,2,4,'你','X'} # 集合里既有数字又有非数字
    s1.pop() # 元素是数字时, 删除最小的数字, 其余数字升序排列
    s2.pop() # 元素非数字时, 随机删除一个元素, 其余元素随机排序
    s3.pop() # 元素既有数字又含非数字时, 如果删除的是数字, 则一定删最小的, 否则随机删除一个非数字元素
    print(s1)
    print(s2)
    print(s3) # 这个代码执行后, 输出的结果是随机的

    下面是打印的结果 1(随机删除一个非数字的元素):

    pop()函数的输出结果 看这里:
    {2, 4, 5}
    {'你', '我'}
    {2, 3, 4, 'X'}

    下面是结果2(删除的是数字, 但删的是最小的数字, 其余数字元素升序排列, 非数字元素随机排列):

    pop()函数的输出结果 看这里:
    {2, 4, 5}
    {'我', '你'}
    {3, 4, 'X', '你'}

    下面是结果3(删除的是数字, 但删的是最小的数字, 其余数字元素升序排列, 非数字元素随机排列):

    pop()函数的输出结果 看这里:
    {2, 4, 5}
    {'他', '你'}
    {3, 4, '你', 'X'}

    总结:

    1、如果集合的元素都是数字, 删除时, 删掉的是最小的数字, 其余数字升序排列

    2、如果集合的元素是非数字, 删除时, 删掉的是随机的元素, 其余元素随机排列

    3、如果集合里既有数字又有非数字元素, 删除时:

    • 若删掉的是数字, 则一定是删掉了最小的, 其他数字升序排列, 非数字元素随机排列;
    • 若删掉的非数字, 则一定是随机删掉了一个, 其他数字升序排列, 非数字则随机排列.
    6年前 (2020年10月07日)
  2. #0

    积木君-学习中

    zha***[email protected]

    16

    补充楼上的,对于数字的删除,内容相同的集合多次执行结果完全相同,但是不一定是最小数字,而是呈现类似字符串的比较规律,即2为最高位数字在1为最高位数字之后删除。但是对于1和100的删除顺序依然未知(不同集合中结果不一样)

    以下是测试代码:

    def print_pop():
     b = {1, 10, 20, 100}
     print(b.pop(), end="\t")
     print(b.pop(), end="\t")
     print(b.pop(), end="\t")
     print("number only \n")
     d = {1, 10, 20, 100, 101, 200}
     print(d.pop(), end="\t")
     print(d.pop(), end="\t")
     print(d.pop(), end="\t")
     print("another number only \n")
    print_pop()

    以下是测试结果:

    100 1 10 number only 
    1 100 101 another number only 

    积木君-学习中

    zha***[email protected]

    5年前 (2021年11月02日)
  3. #0

    ygx800217

    831***[email protected]

    1

    补充楼上的,对于 2 为最高位数学在1为最高位数学之后删除的说法是不一定。但是内容相同的集合多次执行结果完全相同,这一点可以确定。 以下是测试代码:

    A:

    b={111,10,20,100}
    print(b.pop(),end='\t')
    print(b.pop(),end='\t')
    print(b.pop(),end='\n')
    d={1,10,20,100,101,200}
    print(d.pop(),end='\t')
    print(d.pop(),end='\t')
    print(d.pop(),end='\t') 

    以下是测试结果:

    10 100 20
    1 100 101

    B:

    b={111,10,201,100}
    print(b.pop(),end='\t')
    print(b.pop(),end='\t')
    print(b.pop(),end='\n')
    d={1,10,20,100,101,200}
    print(d.pop(),end='\t')
    print(d.pop(),end='\t')
    print(d.pop(),end='\t')

    以下是测试结果:

    201 10 100
    1 100 101

    ygx800217

    831***[email protected]

    3年前 (2023年04月06日)
  4. #0

    antilina

    285***[email protected]

    4

    补充一下,版本是3.11.2:

    对于 set.pop() 的删除顺序,我发现它和该集合在内存中存储的实际顺序有关,有以下语句:

    >>>d = {1,10,20,100,101,200}
    >>>d
     {1,100,101,20,200,10}
    >>>d.pop()
     1
    >>>d.pop()
     100
    >>>d.pop()
     101
    >>>d.pop()
     20
    >>>d.pop()
     200
    >>>d.pop()
     10

    会发现,set.pop()每次删除set中第一个元素,但是由于d的内容存储顺序是1,100,101,20,200,10,所以会按照这个顺序依次删除;对于set中只有非数字元素的情况,随机的其实是集合内容的存储顺序,每次赋值内容顺序改变,但是pop仍然按照从左到右的顺序依次删除,所以看起来就是重复赋值,删除结果不同。

    >>>d = {'你','我','他'}
    >>>d
     {'你','他','我'}
    >>>d.pop()
     '你'
    >>>d.pop()
     '他'
    >>>d.pop()
     '我'

    antilina

    285***[email protected]

    3年前 (2023年08月05日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /