Python如何输入二维列表并打印其中每个独立的子列表
问题解决方案
原有代码问题分析
input()返回的是字符串类型,你没有将其转换为Python可识别的二维列表结构,直接追加到列表后,alist中只有1个字符串元素,遍历只会一次性打印全部内容。
修改后代码
基础版本(安全转换,输入需符合Python列表字面量规范)
import ast # 读取用户输入 user_input = input("Enter 2D list = ") # 将输入字符串转换为真实二维列表,ast.literal_eval比eval更安全,仅支持字面量转换 alist = ast.literal_eval(user_input) # 遍历每个子列表打印 for row in alist: print(row)
适配无引号输出的版本(匹配你给出的示例输出格式)
如果需要输出[a,b]这类不带元素引号的效果,调整打印语句即可:
import ast user_input = input("Enter 2D list = ") alist = ast.literal_eval(user_input) for row in alist: # 将子列表元素转为字符串后拼接,实现无引号输出效果 print(f"[{','.join(map(str, row))}]")
输入规范说明
- 输入的二维列表需要符合Python语法规范,比如字符串类型的元素需要包裹引号,例如正确输入格式为:
[["a","b"],["c","d"],["e"],["f","g"]] - 如果a、b等是你代码中已经提前定义好的变量,可以把
ast.literal_eval替换为eval(注意eval存在安全风险,仅在你完全信任输入内容时使用)
内容的提问来源于stack exchange,提问作者NewbieCoderKid
相关产品推荐
相关产品推荐

