Python列表中字符串修改不生效 奇数索引字符转大写问题求助
代码问题排查与修复
核心错误点
- Python 字符串是不可变类型,调用
replace()方法不会修改原字符串,只会返回修改后的新字符串,你的代码没有接收这个返回值赋值,修改自然不会生效 - 无法直接对字符串的单个下标元素赋值修改,要修改字符串内容需要先转为列表,修改完成后再拼接为新字符串
- 当前判断条件
j%2 == 0匹配的是Python索引体系中的偶数位(索引从0开始计数:0、2、4...),如果你的需求是奇数索引(1、3、5...)转大写,需要把条件改为j%2 == 1,如果是日常计数的第1、3、5位转大写,可保留原有判断条件
修复后代码
list1 = [] x = int(input("Enter the size of list : ")) for i in range(x): temp = str(input("Enter the element you wish to insert : ")) list1.append(temp) for i in range(x): # 将字符串转为可变的列表 char_list = list(list1[i]) size = len(char_list) for j in range(size): # 此处为奇数索引(1、3、5...)转大写,如需日常计数的奇数位,改为j%2 ==0即可 if j % 2 == 1: char_list[j] = char_list[j].upper() # 把修改后的列表拼接回字符串,替换原列表中的元素 list1[i] = ''.join(char_list) print(list1)
内容的提问来源于stack exchange,提问作者ProgrammerForFun
相关产品推荐
相关产品推荐

