Python多字符串存入列表问题:代码输出不符预期的排查
问题分析与解决:输入字符串存入列表不符合预期
代码问题点
你的核心错误在于循环逻辑:splitinput1本身已经是分割后的目标列表(比如输入A B C后得到['A','B','C']),但你在for x in range(len(splitinput1))循环中,每次都把整个splitinput1列表添加到test里。因为splitinput1的长度是3,循环执行3次,最终test就变成了包含3个相同子列表的嵌套列表,这就是输出不符合预期的原因。
解决方法
方法1:直接赋值(最简单)
既然splitinput1已经是你需要的列表,直接将其赋值给test即可,无需循环:
test = [] input1 = input("Enter multiple strings: ") splitinput1 = input1.split() test = splitinput1 print(test) print(len(test))
方法2:循环添加单个元素(保留append逻辑)
如果一定要用append实现,需要遍历splitinput1中的每个元素,逐个添加到test:
test = [] input1 = input("Enter multiple strings: ") splitinput1 = input1.split() for item in splitinput1: test.append(item) print(test) print(len(test))
方法3:列表推导式(简洁写法)
用列表推导式可以一行完成转换:
input1 = input("Enter multiple strings: ") test = [item for item in input1.split()] print(test) print(len(test))
测试结果
以上三种方法输入A B C后,都会输出:
['A', 'B', 'C'] 3
完全符合你的预期。
内容的提问来源于stack exchange,提问作者user512512af
相关产品推荐
相关产品推荐

