python - 测试偶数字母,为什么我的函数内外的索引不同?
问题描述
功能:
def func(word):
out=[]
for i in word:
if i in word[0::2]:
out.append(i.upper())
return out
如果我跑
func('This is a string')
这将返回:
['T','I','S', ' ', 'I','S', ' ','A', ' ','S','R','I','N']
这是我在测试从位置 0 开始的第二个字母时所期望的。
然而
mystring = 'This is a string'
mystring[0::2]
将返回
'Ti sasrn'
请注意,该函数不是我的生产代码,而是我发现并简化的一个兴趣点。
解决方案
for i in word:
if i in word[0::2]:
out.append(i.upper())
此代码遍历字符,如果某个字符出现在偶数位置,则将其添加到out
列表中(即使正在评估的字符位于奇数位置)。
func('abb')
将 yield [a, b, b]
,因为当第二个b
被评估时,函数会询问“字母是否b
出现在我的字符串中的偶数位置?”,因为答案是肯定的,所以它被附加到输出中。
推荐阅读
- node.js - 在 cmd 和 localhost 上得到了这个输出“createError is not defined”
- python - Python3 How to retrieve specific dates from a dataframe for stock using pandas
- c# - 使用 Newtonsoft 序列化模型列表
- kubernetes - 入口、重写目标、前端和 API 相同的 URL。版本 0.22.0+
- python - 如何在python中加速二维数组中的二维数组?
- javascript - 将 highcharts 图例停靠在图表的最底部
- maven - 如何用maven修复外部依赖缺失的jar?
- laravel - 我在 laravel 中的路线有问题
- java - JTable 不断将数字排序为字符串
- xamarin - Xamarin Forms:将 DAL 方法调用到不同的页面