首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python中的=="i“应该匹配迭代的i而不是文字i,有什么办法吗?

在Python中,使用"=="运算符进行比较时,确实会匹配迭代的i而不是文字i。如果想要匹配文字i,可以使用字符串比较的方式来实现。

一种方法是使用字符串的equals()方法进行比较,示例如下:

代码语言:txt
复制
text = "i"
if text.equals("i"):
    # 匹配文字i
    print("匹配成功")
else:
    print("匹配失败")

另一种方法是将迭代的i转换为字符串,然后进行比较,示例如下:

代码语言:txt
复制
text = "i"
if str(text) == "i":
    # 匹配文字i
    print("匹配成功")
else:
    print("匹配失败")

这两种方法都可以实现匹配文字i的目的。在实际开发中,可以根据具体情况选择适合的方法来解决该问题。

关于Python中的字符串比较和转换,可以参考腾讯云的Python开发文档:Python开发文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你所不知道「删除」操作

Python 删除作用一般是 del、remove 和 pop,相信很多人都用过,但是不是真的会有待商榷,下面我们先来看一个例子: lst1 = [1,2,3,4] lst2 = [1,2,3,4...lst4.pop(i) 上述代码运行完以后,你知道列表 lst1 ~ lst4 此时变成了什么?...lst1 前后没有改变;「remove」是会删除第一个匹配指定值,不是说特定索引,如果没有找到指定值的话会抛出 ValueError 异常;最后「pop」则会删除指定索引处元素并且返回它,...看了上面对于三者「删除」之间不同,然后我再来解释「为什么输出是 [2,4]」就很好理解了: Python 列表迭代是按照索引进行,所以当我们从 lst2 或者 lst4 删除索引为0,也就是元素...现在我们明白了问题所在,在最后我想再补充一点:在文章最初,代码「在迭代时修改对象」是一种很 stupid 做法,正确做法应该迭代对象副本,如 lst3[:] 这种做法才是我们应该学习正确做法

35320

你所不知道「删除」操作。

Python 删除作用一般是 del、remove 和 pop,相信很多人都用过,但是不是真的会有待商榷,下面我们先来看一个例子: lst1 = [1,2,3,4] lst2 = [1,2,3,4...lst4.pop(i) 上述代码运行完以后,你知道列表 lst1 ~ lst4 此时变成了什么?...lst1 前后没有改变;「remove」是会删除第一个匹配指定值,不是说特定索引,如果没有找到指定值的话会抛出 ValueError 异常;最后「pop」则会删除指定索引处元素并且返回它,...看了上面对于三者「删除」之间不同,然后我再来解释「为什么输出是 [2,4]」就很好理解了: Python 列表迭代是按照索引进行,所以当我们从 lst2 或者 lst4 删除索引为0,也就是元素...现在我们明白了问题所在,在最后我想再补充一点:在文章最初,代码「在迭代时修改对象」是一种很 stupid 做法,正确做法应该迭代对象副本,如 lst3[:] 这种做法才是我们应该学习正确做法

31210

Python for死循环

是一个可迭代对象,不是真的序列对象。...可能是因为for i in rangeii = 0i不是同一个i,是不是同一个可以通过使用id这个内置函数查看内存地址就行。不要只知其然,还要知其所以然! ? 为什么会选择从300开始循环?...从结果我们也非常容易看出来,因为地址不同,两个i不是同一个i。...itertools模块类 count 难道一定要自己定义类?难道没有相应库给一个无限迭代?...实际上无限迭代东西Python确实有封装,实例化出来一个无穷迭代对象类确实有,大部分位于itertools模块,比如count,cycle,repeat…… count构造方法两个默认参数,第一个参数是开始计数

9.8K20

牺牲时间换取更少空间,牺牲空间换取更快时间!

数据存入文件,彻底减少内存占用 问题来了,难道大量数据进行操作真的一点办法都没有?...到这里为止,前面讲东西不管你是做什么,一定要懂!!!(不懂加群,群号加群方式见文末)之后只要Python程序员会就行了。...既然是产生一个整数序列,输出应该是一个列表。 ? 迭代器 然而并不是,这东西到底是什么呢?!因为range函数返回是一个可迭代对象(类型是对象),不是列表类型, 所以打印时候不会打印列表。...但是问题还是有的,range只能有规律迭代,而且只能是整数。如果数据不是整数难道就必须创建列表了吗?并不是,该介绍接下来主角——迭代器!迭代使用方法如下。 ?...在函数中使用生成器 Python一个更简单东西可以直接从函数实现迭代,它就是生成器,下面我来演示一下在函数中使用生成器。 ?

1.1K30

Python进阶系列:Python遍历秘密

前言 可迭代对象,迭代器,生成器,相信许多学习Python小伙伴或多或少都听说过,但你真的知道他们区别?真的知道为什么需要这些概念?...本文字数2000+,不适合初学者,阅读本文需要你以下Python基础知识: - 认识列表(list) - for循环等基本语法。 - 自定义类型,方法。...迭代由来 你可能会疑惑,为什么多此一举,非要弄一个所谓迭代器出来? 可以把状态值 i ,保存在列表对象啊。 答案是,因为在嵌套for遍历时候,需要两个for状态值 i 是独立分开。...看下图: - 如果状态值 i 直接保存在列表对象,那么这里嵌套遍历就乱套了。 - 可见,这里 Python 会为我们创建了2个独立迭代器,独立维护了2个状态值 i 。...生成器其实就是一种迭代器 所谓生成器,指定是一种不断生成输出东西事物,同样地可以通过 next 方法从生成器上获取输出。 是不是迭代概念不谋合?那又是为什么弄这样一个概念出来?

1.1K30

Python进阶系列:Python遍历秘密

迭代对象,迭代器,生成器,相信许多学习Python小伙伴或多或少都听说过,但你真的知道他们区别?真的知道为什么需要这些概念?...本文字数2000+,不适合初学者,阅读本文需要你以下Python基础知识: - 认识列表(list) - for循环等基本语法。 - 自定义类型,方法。...迭代由来 你可能会疑惑,为什么多此一举,非要弄一个所谓迭代器出来? 可以把状态值 i ,保存在列表对象啊。 答案是,因为在嵌套for遍历时候,需要两个for状态值 i 是独立分开。...看下图: - 如果状态值 i 直接保存在列表对象,那么这里嵌套遍历就乱套了。 - 可见,这里 Python 会为我们创建了2个独立迭代器,独立维护了2个状态值 i 。...生成器其实就是一种迭代器 所谓生成器,指定是一种不断生成输出东西事物,同样地可以通过 next 方法从生成器上获取输出。 是不是迭代概念不谋合?那又是为什么弄这样一个概念出来?

61020

面试必备 | 带你彻底搞懂 Python 生成器。

文字数:2281 字 阅读本文大概需要:6 分钟 写在之前 Python 高级语言特性一直是我们学习 Python 一个难点,大部分人并没有做到熟练掌握,甚至去学习它都感觉很困难,「生成器」作为其中甚是有用特性之一...其实不光是对于「生成器」而言,对于其它高级语言特性还是建议大家要花点时间去搞懂,不说其它,这些东西作为面试中常考内容也应该引起你重视,毕竟公司不是傻瓜,没有用东西干嘛要考你?...对象就是「可迭代对象」,即实现了迭代器协议对象,它实现了迭代器协议。其实像是 Python for 循环,sum 函数等等就是使用迭代器协议访问对象。...Python 使用生成器对「延迟操作」提供了支持,所谓「延迟操作」就是在需要它时候才产生结果,不是说立即产生结果。...看看用生成器来做同样功能,到底什么不同: def get_odd(lst): for i in lst: if i % 2: yield i def

32220

【Leetcode之路 | Java & Python】两数之和(暴力枚举&哈希表)

优化: 思考如何在第一步基础上,如何优化算法,降低时间复杂度。 构思代码: 了以上两步,我们此时应该已经了一个正确想法,此时我们应该构思代码,那几部分,每部分实现什么功能,代码怎么写。...不是直接闷头去写代码,没想清楚直接去写代码,会导致写了一半发现思路不对,写代码都是错误。 写代码: 实现第三步代码。...(Debug): 如果我们题目没有通过测试,应该检查代码是不是bug、思路对不对等。...总结与反思: 题目通过了,我们应该总结一下这道题考察知识点、切入角度、同类型题目等,同时思考有没有更优办法。 做到以上几点,一道题学习就很透了,遇到同类型题目可以举一反三啦。...取值时,先对指定键求Hash值,再和容量取模得到底层数组对应位置,如果指定键值与存贮键相匹配,则返回该键值对,如果不匹配,则表示哈希表没有对应键值对。

53910

长篇大论Python生成器

比较有意思事情是,曾经有人建议生成器函数不应该使用def,而应该发明一个新关键字比如gen,但是Python之父Guido并没有同意这样做。...生成器作用其实是解决内存问题,比如我们都知道Python正则表达式一个re.findall()函数,它会把所有匹配元素都一次性写入内存,假如匹配数据很多,就会占用大量内存。...为了解决这个问题,Python3一个re.finditer()函数,返回就是一个生成器,取值时才生成数据放入内存,能节省大量内存。...标准库生成器函数 实现生成器时要知道标准库中有什么可用,否则很可能会重新发明轮子。有些是内置,有些在itertools模块,有些functools模块。...比如生成器函数需要产出另一个生成器生成值,传统解决办法是使用for循环: def chain(*iterables): for it in iterables: for i

38410

Python基础面试,看这篇文章画重点吧

什么有这个系列文章 一直想写一些更加基础文章,但是总是想不到好点子,最近到了就业季,一大堆学生面临就业了,正好,从Python面试题出发,分析和解答一些常见面试题,并且总结一些文字。...分析:这题考察是对Python内置函数了解程度 Python常见内置函数 ?...else: print("fibo:") for i in range(1,m): print(fibo(i)) 解法3: 迭代,用递归当数据大时候,会出现效率问题 def...time.clock()说明 cpu 运行机制:cpu是多任务,例如在多进程执行过程,一段时间内会有对各进程被处理。...,博主后面2个办法,实在高级,贴给大家 https://blog.csdn.net/chichu261/article/details/83589767 第3题:列出几个python标准库 你先明确什么

42310

算法君带你学算法(1):求最长回文字符串

还是先给我讲一下什么是回文字符串吧! 算法君:回文字符串!首先是一个字符串(废话),然后,核心就是回文。“回”,就是来来回回意思。...不是让你判断是否为回文字符串,是要在一个字符串寻找最长回文字符串,例如,akbubk是一个字符串,这里边很多回文字符串,其实单个字母就是一个回文字符串,还有就是bub、kbubk,很显然,最长文字符串就是...寻找akbubk中最长回文字符串过程,肯定是从长度为1子字符串开始搜索,然后是长度为2字符串,以此类推,所以bub一定比kbubk先搜索到,所以需要将bub是回文字符串结果保存起来,如果要判断...通过key搜索是否为回文历史记录,也就是搜索value,在Python字典可以实现这个功能。用字典可以? 算法君:字典算是一种实现,你想想用字典具体应该如何实现呢?...算法小白:这个我知道,Python我已经很熟悉了。可以将i和j作为一个列表,然后作为字典key,不不不,该用元组,Python是不支持将列表作为字典key

72220

统计师Python日记【第九天:正则表达式】

用正则表达式处理Pandas数据 (1)匹配行 (2)提取匹配文字 (3)提取匹配文字一部分 ---- 统计师Python日记【第9天:正则表达式】 前言 根据我Python学习计划: Numpy...先来分析一下: 首先两个PD不是必须,有的、有的没有,但后面(XX)括号里面两个数字是必须,我就按照这样模式来获取红色字体部分: pattern = re.compile('P?D?...成功匹配出来了。 方法二: 思路是将匹配索引记录下来,不是观测值: pattern = re.compile('P?D?\D\d{2}\D\s?...\d{4}-\d{4} 这个表达式和红色字体部分是对应。那么一个问题,假如我想提取出来这段匹配文字任一部分呢?...(4)总结 虽然具体问题千奇百怪,但核心方法都是一样,正则表达式函数+迭代 = Pandas数据处理。考验还是Python技巧综合运用。

1.8K40

【C++】vector问题解决(非法间接寻址,迭代器失效 , memcpy拷贝问题)

不是使用vector类模版,是为了兼容更多数据类型)。...非法间接寻址造成原因很多: 空指针引I用:当一个指针没有被初始化或者为NULL时,对它进行间接寻址操作会导致非法访问。...我们分析一下我们遇到问题是那种问题?空指针引用?不可能!野指针引用?也不可能!!! 那么真相只有一个:我们遇到了类型不匹配问题,那这是来自哪里呢???...: 迭代指向发生了改变,我们实现迭代底层是指针,我们插入之后指针位置不变,数组元素改变,自然会产生不一样结果。...迭代器就失效了,这个解决办法也很简单,就是插入之后不要使用之前迭代器!!!一定要对迭代器进行更新。

14010

如何遍历pandas当中dataframe

对于每一行,都希望能够通过列名访问对应元素(单元格值)。...iterrows()快 但请注意,根据文档(目前 Pandas 0.19.1): iterrows:数据dtype可能不是按行匹配,因为iterrows返回一个系列每一行,它不会保留行dtypes...(dtypes跨DataFrames列保留)* iterrows:不要修改行 你不应该修改你正在迭代东西。...根据数据类型不同,迭代器返回一个副本不是一个视图,写入它将不起作用。...另外,记得关注我简书号马哥学Python,这样你就不会错过任何有价值文章! 我会阅读所有的评论,所以无论你什么想要说,或者是想要分享,甚至是问题之类,都可以在下面留言。

3.9K40

【刷题之路 | Java & Python】两数之和(暴力枚举&哈希表)

优化: 思考如何在第一步基础上,如何优化算法,降低时间复杂度。 构思代码: 了以上两步,我们此时应该已经了一个正确想法,此时我们应该构思代码,那几部分,每部分实现什么功能,代码怎么写。...不是直接闷头去写代码,没想清楚直接去写代码,会导致写了一半发现思路不对,写代码都是错误。 写代码: 实现第三步代码。...(Debug): 如果我们题目没有通过测试,应该检查代码是不是bug、思路对不对等。...总结与反思: 题目通过了,我们应该总结一下这道题考察知识点、切入角度、同类型题目等,同时思考有没有更优办法。 做到以上几点,一道题学习就很透了,遇到同类型题目可以举一反三啦。...取值时,先对指定键求Hash值,再和容量取模得到底层数组对应位置,如果指定键值与存贮键相匹配,则返回该键值对,如果不匹配,则表示哈希表没有对应键值对。

40920

深入理解迭代器和生成器

但是,你想过 Python 在处理 for in 语句时候,具体发生了什么什么对象可以被 for in 来枚举呢?...True 通过这段代码,你就可以知道,给出类型,除了数字 1234 之外,其它数据类型都是可迭代。 生成器,又是什么?...当然,要注意,这里“更少”前提是清晰,不是使用更多魔术操作,虽说减少了代码却反而增加了阅读难度。 回归正题。接下来我们再来看一个问题:给定两个序列,判定第一个是不是第二个子序列。... (i in b) 需要好好揣摩,这里你是不是能联想到 for in 语句?...我们会在下节课,继续深入讲解 Python 协程。 思考题 最后给你留一个思考题。对于一个有限元素生成器,如果迭代完成后,继续调用 next() ,会发生什么呢?生成器可以遍历多次

33620
领券