zoukankan      html  css  js  c++  java
  • 字符串“id<=10”转换为列表['id','<=','10']

    蒙圈,逻辑混乱

    分析:可以用split('<='),嘿嘿,好简单

    但是,这不是我蒙圈的原因,比如用for 循环

    定义变量:expr = 'id<=10'

    expr = 'id<=10'
    res =[]
    for i in expr:
    res.append(i)
    print(res)

    ['i', 'd', '<', '=', '1', '0'] # 结果就是它

      取出<=如何操作???

    expr = 'id<=10'
    res =[]
    for i in expr:
        if i == '<=':
            print(i)
        else:
            print('不存在 <=')
    print(res)
    

      我是不是,太无聊了啊,

    算了,咱还是要用到字符串拼接  (就是 + ), 我的正常逻辑

    expr = 'id<=10'
    key = ['<','>','=']
    res =[]
    opt = ''# 拼接 运算符
    char =''# 拼接字符
    tag = False
    for i in expr:
        if not tag:
            char += i   # 最终结果 id<
        if i in key:
            tag = True
            opt+=i
            res.append(char) # 结果 <=
            char =''
        if i not in key and tag:
            res.append(opt)  
            char +=i    # 结果 10,但是没有加到 res
            opt =''
    print(res)
    ['id<', '', '<=', '']  结果是这个 样子的,哎
    

      调整一下 if 判断语句的次序呢,且重复利用 for - else 循环

    expr = 'id<=10'
    key = ['<','>','=']
    res =[]
    opt = ''# 拼接 运算符
    char =''# 拼接字符
    tag = False
    for i in expr:
        if i in key:
            tag = True
            res.append(char) # 结果 <=
            char =''
            opt += i
        if not tag:
            char += i   # 最终结果 id
        if i not in key and tag:
            res.append(opt)
            char +=i    # 结果 10,但是没有加到 res
            opt =''
    else:
        res.append(char)
    print(res)
    ['id', '', '<=', '', '10']  又两个空白元素,分析一下空白元素在哪里被添加的
    

      前一个 空白元素是  char='' 产生的,后一个 空白元素是 opt='' 产生的,

    前一个空白元素用 if len(char) !=0  满足条件才添加(append)

    后一个空白元素 主要原因是没有把 标识位 tag 重置为 False,从而导致了用混了判断条件,如果 把 expr = 'iid<=1709',是不是空格更多了呢,嘿嘿

    expr = 'iid<=170'
    key = ['<','>','=']
    res =[]
    opt = ''# 拼接 运算符
    char =''# 拼接字符
    tag = False
    for i in expr:
        if i in key:
            tag = True
            if len(char) != 0:
                res.append(char) # 结果 <=
                char = ''
            opt += i
        if not tag:
            char += i   # 最终结果是 id
        if i not in key and tag:
            tag = False
            res.append(opt)
            char +=i    # 结果 10,但是没有加到 res
            opt =''
    else:
        res.append(char)
    print(res)
    

      

    最终正确答案 ['iid', '<=', '170']

    这就是今天的战绩了!

  • 相关阅读:
    ffmpeg基础 -- avio_alloc_context 读内存
    C++入门--运算符重载
    驻极体话筒与MEMS话筒
    gdb调试段错误
    从零开始学Axure原型设计(高级篇)
    从零开始学Axure原型设计(进阶篇)
    从零开始学Axure原型设计(入门篇)
    自学编程的人,都是怎么找到自己的第一份工作的
    做一名程序员需要学哪些知识
    微信web开发者工具
  • 原文地址:https://www.cnblogs.com/yes5144/p/7366576.html
Copyright © 2011-2022 走看看