如何通过字符串切片提取奇偶位置字符?附具体实例需求
用Python字符串切片提取奇偶位置字符
嘿,这个需求用Python的字符串切片就能轻松搞定,代码还特别简洁!先明确一个容易混淆的点:Python里字符串的索引是从0开始的,但你要的是日常语境里“第1、3、5...位(奇数位置)”和“第2、4、6...位(偶数位置)”,对应到索引上就是偶数索引和奇数索引啦。
直接上可以跑的代码,完全匹配你的示例需求:
# 定义目标字符串 original_str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 提取奇数位置的字符(从1开始数的第1、3、5...位) odd_position_chars = original_str[::2] # 提取偶数位置的字符(从1开始数的第2、4、6...位) even_position_chars = original_str[1::2] # 打印结果 print("奇数位置字符:", odd_position_chars) # 输出 ACEGIKMOQSUWY print("偶数位置字符:", even_position_chars) # 输出 BDFHJLNPRTVXZ
为啥这么写?切片语法拆解
Python的切片格式是[起始索引:结束索引:步长],这里用到的是省略起始和结束索引的简化写法:
original_str[::2]:第一个空值表示从字符串开头(索引0)开始取,第二个空值表示一直取到字符串末尾,步长设为2意味着每隔1个字符取一个——正好拿到所有偶数索引的字符,对应你要的“奇数位置”;original_str[1::2]:起始索引设为1,从第二个字符开始,步长同样是2,这样就拿到了所有奇数索引的字符,对应你要的“偶数位置”。
如果之后遇到类似的切片需求,只要调整起始索引和步长就能灵活变化,比如想从第3位开始取每隔2个字符,就用[2::2]就行~
内容的提问来源于stack exchange,提问作者Trikstar Pandora




