字符串“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']

这就是今天的战绩了!

原文地址:https://www.cnblogs.com/yes5144/p/7366576.html