首页 > 编程语言 >python中列表推导式语法问题记录

python中列表推导式语法问题记录

时间:2023-06-15 16:11:06浏览次数:30  
标签:dim 推导 python 代码 列表 字典

有问题代码:

w = [0,1,2]
e = {0:[1,2],1:[3,4],2:[5,6]}
r = [dim for dim in e[i] for i in w]
#这一段python代码有什么问题
报错:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'i' is not defined. Did you mean: 'id'?

 

这个问题中主要是列表推导式的语法问题,第一个for循环要放在中间,下面是修复后的代码:

w = [0, 1, 2]
e = {0: [1, 2], 1: [3, 4], 2: [5, 6]}
r = [dim for i in w for dim in e[i]]

修复后的代码将使用列表'w'中的每个元素作为索引来访问字典'e'中的值,并将结果添加到列表'r'中。现在,代码应该按预期工作,将r设置为包含所有字典值的扁平化列表。

表达式 `[dim for i in w for dim in e[i]]` 是一个列表推导式,它用于创建列表 `r`。下面是其处理流程的解释:

1. `for i in w`: 这是外部循环,遍历列表 `w` 中的每个元素。在每次迭代中,将当前元素赋值给变量 `i`。

2. `for dim in e[i]`: 这是嵌套在外部循环中的内部循环。它使用变量 `i` 作为键来访问字典 `e` 中的值,即 `e[i]`。然后,它遍历字典值(也是一个列表)中的每个元素,并将当前元素赋值给变量 `dim`。

3. `dim`: 这是列表推导式的输出表达式。在内部循环的每次迭代中,将当前的 `dim` 添加到最终的列表 `r` 中。

综上所述,这段代码的目的是将字典 `e` 中指定键的值扁平化为一个列表,并将结果保存在列表 `r` 中。例如,如果 `w = [0, 1, 2]` 和 `e = {0: [1, 2], 1: [3, 4], 2: [5, 6]}`,那么最终的 `r` 列表将包含 `[1, 2, 3, 4, 5, 6]`。

标签:dim,推导,python,代码,列表,字典
From: https://www.cnblogs.com/chentiao/p/17483188.html

相关文章

  • [-003-]-Python3+Unittest+Uiautomation Windows桌面App UI自动化之控件查找
    1、获取所有的子控件:control.GetChildren()2、获取首个子控件:control.GetFirstChildControl()3、获取最后一个子控件:control.GetLastChildControl()4、获取下一个兄弟控件:control.GetNextSiblingControl()5、获取前一个兄弟控件:control.GetPreviousSiblingContr......
  • Python的map()方法如何使用?
    Python的map()方法如何使用?>>>help(map)Helponclassmapinmodulebuiltins:classmap(object)|map(func,*iterables)-->mapobject||Makeaniteratorthatcomputesthefunctionusingargumentsfrom|eachoftheiterables.Stopswhen......
  • Python项目-学生信息管理系统
    Python项目-学生信息管理系统一、功能介绍学生信息管理系统实现的功能如下:1、添加学生信息2、删除学生信息3、修改学生信息4、查询学生信息5、显示所有学生信息6、按班级查询学生信息7、退出系统二、代码实现#定义打印系统函数definfo_print():print('-------......
  • Python用字典构建多级菜单
    Python用字典构建多级菜单#key-value#字典是无序的,因为他没有下标,通过key找info={'stu01':"liuhaolai",'stu02':"wangshulin"}print(info['stu01'])info['stu03']='刘**'#若不存在该key,则直接添加info['stu04&#......
  • python unitest 文件结构
    unittest框架的文件结构可以按照以下方式组织:1.导入所需的模块和类:在测试文件的开头,需要导入unittest模块以及待测试的模块或类。2.定义测试类:使用class关键字定义一个测试类,类名通常以"Test"开头,并继承unittest.TestCase类。3.定义测试方法:在测试类中,可以定义多个......
  • 【Python】表格模块
      ......
  • Python(request)爬虫有多强大?
    requests是Python中的一种HTTP客户端库,用于发送HTTP请求并获取服务器响应。使用requests库可以轻松地进行常见的HTTP操作,如GET、POST、PUT、DELETE等,支持HTTPS和HTTP连接以及摘要验证、基本认证等身份验证方式。因此,Python的requests库是一个很棒的选择,如果您需要编写一个简单又......
  • python发送文件
      发送端importsocketimportosimporttimefilename=input('pleaseenterthefilenameyouwanttosend:\n')filesize=str(os.path.getsize(filename))fname1,fname2=os.path.split(filename)client_addr=('127.0.0.1',9999)f=op......
  • python 调试pdb
    python调试pdbimportpdb;pdb.set_trace()这是一个Python代码中的调试技巧,用于在代码中插入一个断点,以便在程序执行到这个位置时,暂停程序并进入调试模式。具体来说,importpdb;pdb.set_trace()这行代码会导入Python标准库中的pdb模块,并在当前位置插入一个断点。在程序执行到......
  • 【SQL 优化器技术系列】谓词推导
    Oracle2005年出了一个30多页的小册子,《QueryOptimizationinOracleDatabase10gRelease2》,介绍了常见的优化器技术。我是做SQL执行的,优化部分只了解皮毛,从没有系统学习过。本系列逐个学习和介绍,自我提升,也帮助他人。谓词推导(Transitivepredicategeneration)听上去高大上......