python中的链表推导式

python中的链表推导式

博客分类: Python

Python

Python代码  

  1. num=[1,2,3]
  2. myvec=[[x,x*2] for x in num] #嵌套一个链表,格式为一个数和他的平方
  3. print myvec

生成链表很简单的一种办法就是链表推导式,不仅容易看懂,还很好用:

链表表达式在for语句前面,for后面就是对参数的限定。[XXX for yyy](必须要有方括号表示是链表),XXX表示链表,yyy限定XXX中参数。

例子:

Python代码  

  1. num=[1,2,3,4,5]
  2. myvec=[x*2 for x in num]
  3. print myvec

输出:

[2,4,6,8,10]

当然,不可能只有一个for这么简单,for后面还可以接别的控制语句

代码:

Python代码  

  1. num1=[1,2,3]
  2. num2=[2,3,4]
  3. myvec=[x*y for x in num1 for y in num2]#嵌套for循环的感觉
  4. print myvec

输出:

[2,3,4,4,6,8,6,9,12]

另外,链表的表达式部分也可以有很复杂的变化,可以为嵌套链表,也可以是很复杂的函数构成

代码:



输出:

[[1,2],[2,4],[3,6]]

====================================================

yanggg 注释

odoo

def _count_all(self, cr, uid, ids, field_name, arg, context=None):
        return {
            purchase.id: {
                ‘shipment_count‘: len(purchase.picking_ids),
                ‘invoice_count‘: len(purchase.invoice_ids),                
            }
            for purchase in self.browse(cr, uid, ids, context=context)
        }

原文地址:https://www.cnblogs.com/python-xiaopang/p/8983853.html

时间: 2024-11-09 19:36:53

python中的链表推导式的相关文章

python中的列表推导式的简单实用

列表推导式是利用其它列表创建新列表的一种方法,它的工作方式类似于for循环: >>> [x*x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 列表由range(10)中的每个x的平方组成,如果只想打印出那些只能被3整除的平方数呢?那么可以使用模运算符--x%3,当数字可以被3整除时返回0: >>> [x*x for x in range(10) if x%3==0] [0, 9, 36, 81] 也可以

Python中的列表推导式

Python里面有个很棒的语法糖(syntactic sugar),它就是 list comprehension ,有人把它翻译成"列表推导式",也有人翻译成"列表解析式".名字听上去很难理解,但是看它的语法就很清晰了.虽然名字叫做 list comprehension,但是这个语法同样适用于dict.set等这一系列可迭代(iterable)数据结构. 语法规范: out_list = [out_express for out_express in input_l

python中的链表

python中的链表(linked list)是一组数据项的集合,其中每个数据项都是一个节点的一部分,每个节点还包含指向下一个节点的链接.链表的数据结构如下图所示 在链表中删除操作可以通过修改指针来实现,如下图所示: 插入则是调整,插入点的前后两个指针的指向关系,如下图所示: 在python中每个变量都是指针,例如: 用内置数据结构(list, dict, tuple等)的嵌套/组合,它们隐式地包含了指向/嵌套关系,如graph[u][v]={w0,w1..}类的成员变量.嵌套类可能包含了指向/

Python 列表\集合\ 字典推导式、生成器表达式

Python 列表\集合?字典推导式.生成器表达式 列表推导式 循环模式 l1 = [i for i in range(1,11)] l2 = [i ** 2 for i in range(100)] l3 = [f'python{i}' for i in range(50)] 筛选模式: l1 = [i for i in range(1,31) if i % 3 == 0] 嵌套循环: names = [['tom','billy','jefferson'],['wesley','steven

【python基础】列表推导式&字典推导式&集合推导式

一.定义 python的一种独有特性, 推导式是可以从一个数据序列构建另一个新的数据序列的结构体 列表推导式,字典推导式,集合推导式(集合是可变数据类型,集合中的元素是不可变数据类型) 1.列表推导式 提供了简单的生成列表的方法 (1)语法结构 ①list = [表达式 for item in 容器] ②list = [表达式 for item in 容器 if 条件] ③list = [表达式 for item1 in 容器1 for item2 in 容器2] (2)执行流程 ①循环遍历出容

python基础之列表推导式

1.列表推导式 1.1.求0~29之间能被3整除的数 ret = [i for i in range(30) if i%3 ==0] print(ret) 输出结果: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27] 2.字典推导式 2.1.将字典mcase = {'a': 10, 'b': 34}的key.value互换位置 mcase = {'a': 10, 'b': 34} mcase_frequency = {mcase[k]: k for k in mcase}

python 三元运算符、推导式、递归、匿名函数、内置函数

三目运算符 # 三目(元)运算符:就是 if...else...语法糖 # 前提:简化if...else...结构,且两个分支有且只有一条语句 # 注:三元运算符的结果不一定要与条件直接性关系 cmd = input('cmd: ') print('可以转化为数字') if cmd.isdigit() else print('不可以转化为数字') a = 20 b = 30 res = a if a > b else b # 求大值 print(res) res = 'b为小值' if a >

python函数知识五 推导式和内置函数一(了解)

17.推导式: 推导式:将for循环多行变成一行 list推导式:[] #普通模式 print([i for i in range(20)]) #循环模式 #[变量 for i in range(20)] print([i+1 for i in range(10)]) #筛选模式 #[变量(加工后) for i in range(20)] print([i for i in range(20) if i % 2 == 1]) 生成器表达器:() #普通模式 print((i for i in r

Python List comprehension列表推导式

http://blog.chinaunix.net/uid-28631822-id-3488324.html 具体内容需要进一步学习 原文地址:https://www.cnblogs.com/xiaoxuesheng993/p/10962961.html