首页 > 其他分享 >这就解释了tuple("单个多字符字符串") type==tuple, 其实是字符串被拆分到元组中, 以供len, 下标, 遍历

这就解释了tuple("单个多字符字符串") type==tuple, 其实是字符串被拆分到元组中, 以供len, 下标, 遍历

时间:2023-12-08 14:02:07浏览次数:28  
标签:tuple list len CoilNum statement 单个 字符串

# 单个多字符字符串拆分
list("单个多字符字符串")
tuple("单个多字符字符串")
set("单个多字符字符串")  # 重新排序
# dict不行 ValueError: dictionary update sequence element #0 has length 1; 2 is required
list("单个多字符字符串",)
tuple("单个多字符字符串",)
set("单个多字符字符串",)  # 重新排序

# 字符串拆分
list("") == list([])
list("单")  # 单个字符也被保存到容器中

这就解释了tuple("单个多字符字符串")

type==tuple, 

其实是字符串被拆分到元组中, 以供len, 下标, 遍历

这就解释了tuple("单个多字符字符串") type==tuple,  其实是字符串被拆分到元组中, 以供len, 下标, 遍历_元组

错误理解记录


def query_CoilNum(list_CoilNum):
    # 避免字典, 集合, 'set' object is not subscriptable, 'dict'会将下标视为键名
    # 避免字符串, 圆括号内单个字符串(不加逗号), 包括: tuple("单个字符串"), tuple("单个字符串",)
    # type(tuple("单个字符串")) == tuple  
    # isinstance(tuple("单个字符串"), tuple) == True  
    # 但是其实是字符串: len, 下标, 遍历均视其为单个字符串
    # len(tuple("单个字符串")) == len("单个字符串")
    # 因此谨慎通过type和len判断类型, 例如tuple("1")就无法被剔除
    # 允许列表, 元组(圆括号内单个字符串加一个逗号算元组)
    # 避免内部元素为None和"", 可通过numpy.array限定内部元素同数据类型
    # 元素为None 输出statement = "((CoilNumber like '%None%'))", 一般无筛选结果
    # 元素为"" 输出statement = "((CoilNumber like '%%'))", 筛选所有非null行
    # 等效于statement = "CoilNumber is not null"
    
    # 综上所述, 可用list函数列表化元组,集合,字典(只保留键名)
    # 避免字符串, 圆括号内单个字符串(不加逗号), 包括: tuple("单个字符串"), tuple("单个字符串",)
    # list函数会对其逐个字符拆分
    # str函数会对tuple("单个字符串"), tuple("单个字符串",)进行逐个字符拆分然后合成字符串
    # tuple("单个字符串"), tuple("单个字符串",), list("单个字符串")
    # 然后判断 if all(x not in [None, ""]) for x in list_CoilNum)
    # 空列表也会输出 True
    # 也可以筛选 list_CoilNum = [x for x in list_CoilNum if x not in [None, ""]]
    # 还可以剔除长度低于8的整数字符串,和字符串前8位字符不是整数字符串的元素
    
    # 避免空列表
    # 空列表[-1], list index out of range
    # 字符串圆括号+字符串+字符串圆括号, 输出没有忽略字符串圆括号
    # 但实际应用该字符串时, 圆括号内单个字符串, 忽略圆括号
    if len(list_CoilNum) > 0:
        # 列表_卷号,个数n=len,第1~n个的索引是0~n-1
        statement = '('
        # 第1~倒数第2个的索引是0~n-1-1,即[0,n-1)
        for i in range(len(list_CoilNum)-1):
            statement += f"(CoilNumber like '%{list_CoilNum[i]}%') or "
        # 倒数第1个的索引是n-1
        # if len(list_CoilNum) == 1: 一个语句有两个括号, 不影响使用
        statement += f"(CoilNumber like '%{list_CoilNum[-1]}%'))"
    else:
        # DatabaseError: 不可以用None, f"{None}" == "{}".format(None) == "None"
        # DatabaseError: 不可以用""
        # 如果允许所有CoilNUm, 赋值statement = "1=1"
        # 如果筛选CoilNum缺失, 赋值statement = "CoilNumber is null"
        # 如果筛选CoilNum非缺失的全部行, 赋值statement = "CoilNumber is not null"
        # 不能使用 = null 或 <> null, 因为null表示未知值, 无法进行比较
        statement = "1=1"
    return statement

标签:tuple,list,len,CoilNum,statement,单个,字符串
From: https://blog.51cto.com/u_16055028/8737135

相关文章

  • java JSON对象与字符串间的转换
    importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;//字符串转为JSON对象StringstrParam="{\"callerid\":\"013941128270\",\"timestart\":\"2021-07-2709:37:42\",\"status\"......
  • 大数入门(2)——扩展的基本列与多元Veblen函数
    扩展——指数不动点进一步的,我们可以考虑\(\omega^{\omega^{\omega^{...}}}\)仿照\(\omega\)的定义,我们定义\(\epsilon_0=\sup\{\omega,\omega^\omega,\omega^{\omega^\omega},...\}\)另一种更为深刻的理解方式是:\(\epsilon_0\)是\(\alpha\rightarrow\omega^\alpha\)的第一个指......
  • day8、9字符串代码随想录
    第四章字符串●344.反转字符串●541.反转字符串II●卡码网:54.替换数字●151.翻转字符串里的单词●卡码网:55.右旋转字符串1反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须......
  • blender光投影和全息投影效果
    光投影光投影需在Cycles渲染器下使用有两种方式:图片贴图投影和纹理贴图投影*图片贴图投影1.新建灯光调整好大小位置以便更好地投影在物体上,使用节点。2.在着色编辑器面板连接好节点加光影贴图进去,映射位置需要调整一下到合适的位置,就大致完成了,接下来可以调整一下能量(亮......
  • 优雅提效:Guava的字符串处理工具
    第1章:引言大家好,我是小黑,今天咱们要聊一聊GoogleGuava这个超棒的Java库,尤其是它的字符串处理工具。对于Java程序员来说,字符串处理是日常工作的一部分,而Guava在这方面提供了非常强大的支持。使用Guava处理字符串不仅可以提高效率,而且代码会更简洁、更优雅。Guava库由Google开发......
  • 软件测试/人工智能|一文告诉你Python字符串的相关操作
    前言字符串是一个非常重要的数据类型之一。它允许程序员处理文本信息,无论是简单的字母、数字还是复杂的文本数据,都可以用字符串来表示和操作。什么是字符串?在Python中,字符串是由字符序列组成的不可变的数据类型。它可以包含字母、数字、符号和空格等内容。字符串在单引号('')或双引......
  • 各种类型数据库的连接字符串
    DataType.MySqlDataSource=127.0.0.1;Port=3306;UserID=root;Password=root;DataBase=cccddd;Charset=utf8;SslMode=none;Minpoolsize=1DataType.PostgreSQLHost=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Minimu......
  • 解决selenium打开edge浏览器闪退问题
     1、需保证浏览器驱动为对应版本,官方给的下载驱动的地址为:https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver/下载完驱动放在如下文件夹编辑2、edge浏览器默认安装路径为:C:\ProgramFiles(x86)\Microsoft\Edge\Application3、我解决问题的方法,增加配置代码......
  • Java扩展赋值运算符,字符串连接符
    1.扩展赋值运算符  2.字符串连接符   ......
  • 使用 std::string_view 提升字符串处理性能
    C++标准库提供了一个非常优秀的字符串处理类std::string,我们可以通过该类完成各种字符串操作。但是std::string有一个缺点,它的很多操作都是针对字符串实体,存在不必要的内存拷贝的代码,导致字符串的处理性能不尽如人意。针对这种情况C++17标准引入了std::string_view这个类,该类不会......