为什么代码输出为a、b、c而非实际值?如何从列表取值插入另一列表
输出为字符a/b/c的原因
- 你调用
insert方法时给a/b/c加了单引号,此时插入的是固定的字符串常量,而非之前从输入赋值的变量值,这是最直接的错误原因 - 输入处理逻辑也存在问题:直接用
list(input())会把输入内容逐字符拆分,如果你的输入是空格分隔的数字(比如6 5 10),拆分后会包含空格字符,x[0]/x[1]/x[2]会得到'6'/' '/'5',完全不符合取值需求
列表提取插入的正确实现
先正确处理输入,拆分后转为整数,插入时直接使用变量名即可,示例代码如下:
N = int(input()) q = [] # 按空格拆分输入并转为整数 input_nums = list(map(int, input().split())) a, b, c = input_nums[0], input_nums[1], input_nums[2] # 插入时不要给变量加引号 q.insert(0, a) q.insert(1, b) q.insert(2, c) print(q)
输入6 5 10时,上述代码输出结果为[6, 5, 10],符合预期。
无需将x转为列表的实现方式
不需要额外定义列表变量存储输入拆分结果,直接解包赋值即可,代码如下:
N = int(input()) q = [] a, b, c = map(int, input().split()) q.insert(0, a) q.insert(1, b) q.insert(2, c) print(q)
如果不需要严格使用insert方法,更简洁的写法是直接构造列表:
N = int(input()) a, b, c = map(int, input().split()) q = [a, b, c] print(q)
内容的提问来源于stack exchange,提问作者Rewant Goenka
相关产品推荐
相关产品推荐

