精华内容
下载资源
问答
  • 元组生成式
    2019-08-24 13:08:02
    >>> num = (i for i in range(10))
    >>> num
    <generator object <genexpr> at 0x000001BF4DC76200>
    >>> for i in num:
    	print(i,end=' ')
    
    	
    0 1 2 3 4 5 6 7 8 9 

     

    更多相关内容
  • python生成式

    2020-12-10 10:48:49
    列表生成式列表生成式,列表推导式(list comprehensions)# 列表生成式即生成列表的生成式,写法简单而优雅,可以将多行代码用一行代码实现,且效率较高。# 一般用于创建简单的新列表或对过滤出新列表。另...

    生成式(comprehensions), 也称推导式,是python中的一种高级玩法,编码风格更加简洁优美。

    它可以使用简单的一行代码实现列表、字典等数据类型的创建或数据类型的转换等任务。

    列表生成式

    列表生成式,列表推导式(list comprehensions)

    # 列表生成式即生成列表的生成式,写法简单而优雅,可以将多行代码用一行代码实现,且效率较高。

    # 一般用于创建简单的新列表或对过滤出新列表。另外,还可以做数据类型间的转换。

    # 用 [] 构造列表生成式

    # 功能1

    nums = [i for i in range(10) if i%2 == 0]# nums= [0, 2, 4, 6, 8]

    nums2 = [i for i in nums if i >5]# num2= [6, 8]

    # 功能2

    nums = list(i for i in range(1, 5))# nums = [1, 2, 3, 4]

    # 数据类型转换

    a = {"name":"jack", "age": 18}

    a2 = [key for key in a]# a2 = ['name', 'age']

    字典生成式

    # 字典生成式即生成字典的生成式。特殊场合下,可以写出很优美的代码。

    # 也分为两种生成方式,一种默认的使用{},括号体内使用循环生成。另外配合内置方法的使用,效果很优美。

    # 用 {} 构造字典生成式

    # 方式1

    {k:v for k,v in enumerate(range(1,5))}# {0: 1, 1: 2, 2: 3, 3: 4}

    # 方式2

    li = [[1,2], (3,4)]

    dict(x for x in li)# {1: 2, 3: 4}

    集合生成式

    # 用{}构造集合生成式

    # 方式1

    b = {i for i in range(1,5)}# {1,2,3,4}

    # 方式2

    a = set(i for i in range(1,5))# {1,2,3,4}

    元组生成式

    # 元组生成式即生成元组的生成式,按理说应该使用()定义,括号内循环的方式生成元组生成式,

    # 但是()被python中的生成器占用,就只剩下一种方式生成元组生成式。

    # 方式1

    tuple(x for x in range(1,5))# (1, 2, 3, 4)

    # 数据类型转换

    nums = [3,4,5,6]

    tuple(x for x in nums)# (3, 4, 5, 6)

    生成器生成式

    使用()内循环的方式可以生成最简单的生成器,生成器替代列表的使用可以减小内存的消耗。生成器可以通过next输出数据,但最后一个后会报错;一般使用for循环的方式使用生成器。其实,range(10)本质上就是一个最简单的生成器。

    a = (i for i in range(1,5))# at 0x0000027B1B5994C8>

    print(next(a))# 1

    print(next(a))# 2

    print(next(a))# 3

    print(next(a))# 4

    print(next(a))# 抛出异常StopIteration

    # 可以使for循环的方式避免异常

    print([i for i in a])# [1,2,3,4]

    展开全文
  • 列表生成式,生成列表 list_a = [1, 2, 3] list_c = list((4, 5, 6)) # list_c == [4, 5, 6] list_d = [i for i in list_a] # list_d == [1, 2, 3] list_e = [i*j for i in list_a for j in list_c] # list_e =...

    列表生成式,生成列表

    list_a = [1, 2, 3]
    list_c = list((4, 5, 6)) # list_c == [4, 5, 6]
    list_d = [i for i in list_a]  # list_d == [1, 2, 3]
    list_e = [i*j for i in list_a for j in list_c] # list_e == [4,5,6,10,12,12,15,18]
    list_f = [i*j for i,j in zip(list_a,list_c)] # list_f == [4, 10, 18]
    list_g = [i for i in list_a if i%2 == 0] # list_g == [2]

    元组生成式生成一个生成器对象,通过for或者next遍历,遍历后,原生成器对象就不存在了

    t1=(i*i for i in range(10))
    print t1.next()
    print t1.next()
    tuple1=tuple(t1)
    print tuple1
    #结果:
    0
    1
    (4, 9, 16, 25, 36, 49, 64, 81)

     

    t2=(i for i in range(10))
    for i in t2:
        print i,
    tuple2=tuple(t2)
    print tuple2
    #结果
    0 1 2 3 4 5 6 7 8 9 ()

     

    转载于:https://www.cnblogs.com/josie-xu/p/10449728.html

    展开全文
  • python 元组的使用方法

    2020-12-10 10:48:44
    列表是可以修改的,但元组是不可修改的Python将不能修改的值称为不可变的,而不可变的列表被称为元组1. 元组的创建和删除(1)使用赋值运算符直接创建元组语法:tuplename=(element1,element2,element3,....)在Python...

    列表非常适合用于存储在程序运行期间可能变化的数据集。

    列表是可以修改的,但元组是不可修改的

    Python将不能修改的值称为不可变的,而不可变的列表被称为元组

    1. 元组的创建和删除

    (1)使用赋值运算符直接创建元组

    语法:tuplename = (element1, element2, element3, ....)

    在Python中,元组使用一对小括号将所有的元素括起来,但是小括号不是必须的,只要将一组值用逗号分隔开,Python就可以使其为元组。verse = "渔舟唱晚", "高山流水", "出水莲", "汉宫秋月" # 元组

    如果要创建的元组中只有一个元素,需要在元素的后面加上逗号,否则Python使其为字符串。verse1 = ('一片冰心在玉壶')    # 字符串

    verse2 = ('一片冰心在玉壶',)   # 元组

    (2)创建空的元组emptytuple = ()

    (3)创建数值元组

    可以使用tuple()函数直接将range()函数循环出来的结果转换为数值元组tuple(data)

    data-可迭代的对象

    (4)删除元组del tuplename

    del语句在实际开发中,并不常用,因为Python自带的垃圾回收机制会自动销毁不用的元组,所以即使我们不手动将其删除,Python也会自动将其回收。

    2. 访问元组元素

    通过for循环coffee_name = ('蓝山', '卡布奇诺', '曼特宁', '摩卡', '麝香猫', '哥伦比亚')

    print('您好,欢迎光临 ~ 伊米咖啡馆 ~\n我店有:')

    for name in coffee_name:

    print(name, "咖啡", end=' ')

    '''

    输出您好,欢迎光临 ~ 伊米咖啡馆 ~

    我店有:

    蓝山 咖啡 卡布奇诺 咖啡 曼特宁 咖啡 摩卡 咖啡 麝香猫 咖啡 哥伦比亚 咖啡

    '''

    for + enumerate()

    enumerate():——枚举

    该函数用于将一个可遍历的数据对象(如列表、元组)组合为一个索引序列,同时列出数据和数据下标,一般在for循环中使用。team = ('火箭', '勇士', '开拓者', '雷霆', '爵士', '马刺')

    for index, item in enumerate(team):

    if index % 2 == 0:

    print(item + '\t\t', end='')

    else:

    print(item)

    输出火箭  勇士

    开拓者  雷霆

    爵士  马刺

    3. 修改元组的元素

    元组是不可变序列,所以我们不能对它的单个元素值进行修改。通过对元组进行重新赋值进行修改。

    元组和元组是可以进行连接的,但连接的两者必须都是元组才行,否则是错误的,要连接的元组只有一个元素时,一定不要忘记后面的逗号。

    4. 元组推导式>>> import random

    >>> random_number = (random.randint(10,100) for i in range(10))

    >>> random_number

     at 0x0000021A177BDED0>  # 生成器对象

    >>> tuple(random_number)           # 转换成元组

    (28, 63, 34, 98, 96, 36, 87, 35, 25, 44)

    从上面的执行结果可以看出,使用元组推导式生成的结果并不是一个元组或列表,而是一个生成器对象,这一点和列表推导式不同。

    要将该生成器对象转换成元组,使用tuple()方法,转换成列表,使用list()方法。

    示例一:# 通过__next()__方法遍历

    # 在Python2.x中__next()__方法对应的是next()方法,也是用于遍历生成器对象的。

    >>> number = (i for i in range(3))

    >>> number

     at 0x0000021A1781EA20>

    >>> number.__next__()

    0

    >>> number.__next__()

    1

    >>> number.__next__()

    2

    >>> number.__next__()

    Traceback (most recent call last):

    File "", line 1, in 

    number.__next__()

    StopIteration       # 停止迭代

    示例二:# 通过for循环遍历

    >>> number = (i for i in range(4))

    >>> number

     at 0x0000021A1781EA98>

    >>> for i in number:

    print(i, end='')

    0123

    >>> print(tuple(number))

    ()

    从上面的两个示例中可以看出:无论通过那种方法遍历,如果想要再次使用该生成器对象,必须重新创建一个生成器对象,因为遍历后该生成器对象就不存在了。

    5. 元组与列表的区别

    (1)列表可变,元组不可变,除非整体替换。

    (2)列表可以用append()、extend()、insert()、remove()、pop()实现添加和删除功能,而元组没有这几个方法。

    (3)列表支持通过切边进行修改和访问,而元组只支持访问,不支持修改,再不进行任何修改时,建议使用元组。

    (4)元组比列表的访问和处理速度快。

    (5)列表不能作为字典的键,而元组可以。

    以上就是python 元组的使用方法的详细内容,更多关于python元组使用的资料请关注其它相关文章!

    展开全文
  • 元组生成器推导式元组创建与元素访问元组与列表的异同点生成器推导 元组创建与元素访问 >>> x = (1, 2, 3) #直接把元组赋值给一个变量 >>> type(x) #使用type()函数查看变量类型 <class '...
  • 从形式上看,生成器推导和列表推导类似,只是生成器推导使用小括号,列表推导直接生成列表对象,生成器推导式生成的不是列表又不是元组,而是一个生成器对象。 我们可以通过生成器对象,转成列表或者元组...
  • 生成器推导 与列表推导完全一致 g = ((i + 2) ** 2 for i in range(10)) tuple(g) # 想要查看值需要用tuple (4, 9, 16, 25, 36, 49, 64, 81, 100, 121) 循环访问时,可以用for遍历,也可用next()函数, 但需要...
  • python 列表生成元组、字典

    千次阅读 2020-12-17 04:28:30
    通过循环生成列表:[x for x inrange(1,11) if]*元组:1什么是元组:也是一种容器类型,元组的元素不能修改,元组使用小括号包裹数据2.如何创建:在括号中添加元素,用逗号隔开1. tup1=(‘kate‘,‘lisa‘,1997,2000)...
  • 下面是第一个字典键的示例:data = {0: (6, 192, 365, 172, 388, 115, 378, 127, 311, 142, 305, 192, 334),1: (4, 172, 688, 115, 678, 105, 650, 107, 634),2: (6, 242, 294, 215, 278, 205, 250, 242, 205, 284, ...
  • python——生成器推导(元组推导)

    千次阅读 2022-03-30 14:48:29
    2.生成器推导 -->用于大数据数据庞大的工程中。 结果是一个生成器对象,但是无法取出。此时内存中不含有任何东西。 元组的遍历提供两种方法:用__next__()方法 用next()内置函数 惰性求值 访问的元素一旦...
  • Python入门基础篇 No.30 —— 元组_生成器推导创建元组_总结 文章目录Python入门基础篇 No.30 —— 元组_生成器推导创建元组_总结前言一、生成器推导创建元组二、元组总结总结 前生篇:元组_元素访问_计数...
  • Python之元组与生成器推导1. 元组1.1 创建元组2. 生成器推导 1. 元组 1.1 创建元组 # 直接把一个元组赋值给一个变量 >>> number = (1,2,3,4,5,6) >>> number (1, 2, 3, 4, 5, 6) # 查看变量...
  • 生成式和生成器 元组 集合 字典 练习 1、字符串 所谓字符串,就是由零个或多个字符组成的有限序列,一般记为,在Python程序中,如果我们把单个或多个字符用单引号或者双引号包围起来,就...
  • 生成器推导创建元组 从形式上看,生成器推导与列表推导类似,只是生成器推导式生成的不是 列表也不是元组,而是一个生成器对象. 列表推导直接生成列表 t1 = tuple((x*3 for x in range(3))) print(t1) s1 = ...
  • 使用推导可以快速生成列表、元组、字典以及集合类型的数据,因此推导又可细分为列表推导元组推导、字典推导以及集合推导。 列表推导 列表推导可以利用 range 区间、元组、列表、字典和集合等数据...
  • 列表很简单的东西,就是list()的一个表达式,其实里面还有很多的玄机。 首先,我们如果想要把一个列表遍历,怎么做 for list_ in list python语法很自然地将for in ...列表推导不会有变量泄露的地方出现,这个.
  • 欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中的元组推导详解》。本知识点主要内容有:使用tuple() 函数,可以直接将生成器对象转换成元组、直接使用for循环遍历生成器对象,可以获得各个...
  • 它将n-元组生成器分离为n个单独生成器的元组。但是,它要求当前元组的每个单独值都已返回以继续下一个元组。严格地说,它将n-元组生成器“拆分”为n生成器,但是您的示例不能像前面介绍的那样工作。它利用Python将值...
  • 生成器推导创建元组元组总结:
  • Python 元组推导

    千次阅读 2019-04-01 09:48:50
    使用元组推导可以快速生成一个元组,其表现形式和列表推导类似,只是将列表推导中的中括号“[]”修改为小括号“()”。 例如:生成一个包含10个随机数的元组。 import random tuple1=(random.randint(10,100...
  • Python(五)元组生成器推导

    千次阅读 2018-06-11 09:32:55
    一、元组(不可变序列)1、概念(1)元组,一旦创建,没有任何方法可以修改元组中的元素,只能使用del命令删除整个元组。(2)Python内部实现对元组做了大量优化,访问和处理速度比列表快。(3)调用函数时使用元组...
  • 一、列表推导 列表推导本质上是一个循环语句,只是形式上更加简洁 # aList = [x*x for x in range(10)] # 相当于 aList = [] for x in range(10): aList.append(x*x) ...二、元组推导 生成器表达式
  • python元组的基本用法及生成器对象 元组不可以被改变,但是可以给元组名赋值,让它指向新的元组 >>>x=(1,2,3) >>> x (1, 2, 3) >>> x=(4,5,6) >>> x (4, 5, 6) >>> ...
  • 列表表达式 a_range = range(10) ...# 嵌套生成 e_list = [[x, y, z] for x in range(5) for y in range(4) for z in range(6)] # e_list列表包含120个元素 print(e_list) 元祖表达式 a = (x for x in range(1
  • 元组定义元组的相关操作+ 运算* 运算in | not in切片操作元组的相关函数len()index()元组推导式生成器 generator定义语法实例 定义 定义空元组 # 1. vartuple = () # 2. vartuple = tuple() 定义含有数据的...
  • 从形式上看,生成器推导与列表推导类似,但前者要使用小括号,列表推导直接生成列表对象,生成器辅导式生成的是一个生成器对象。 s=(x*2 for x in range(5)) ==>s <generator object <genexpr> ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,423
精华内容 16,969
关键字:

元组生成式

友情链接: spac.zip