Python推导式创建数列的方法

yizhihongxing

一、列表推导式

列表推导式生成列表对象,语法如下:

'''
[表达式 for item in 可迭代对象]
或者
[表达式 for item in 可迭代对象 if 条件判断]
'''

例子

l1 = [x for x in range(5)]
print(l1)       # [0, 1, 2, 3, 4]

l2 = [x*2 for x in range(1,5)]
print(l2)       # [2, 4, 6, 8]

l3 = [x*2 for x in range(1,100) if x % 5 == 0]
print(l3)       # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190]

l4 = [x for x in "abcdefghij"]
print(l4)       # ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

l5 = [(row,col) for row in range(3) for col in range(1,4)]
print(l5)  # [(0, 1), (0, 2), (0, 3), (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3)]
for l6 in l5:
    print(l6)

二、字典推导式

字典推导式生成字典对象,语法如下:

'''
{key:value for 表达式 in 可迭代对象}
字典推导式也可以加if和多个for循环
'''

例子

# 统计字符串中各个字符出现的次数
#Python学习交流群:711312441
text = "i love liangxiaoxin,i can fall in love liangxiaoxin all the time."
count_dict = {d : text.count(d) for d in text}
print(count_dict)   # {'i': 10, ' ': 10, 'l': 8, 'o': 4, 'v': 2, 'e': 4, 'a': 7, 'n': 6, 'g': 2, 'x': 4, ',': 1, 'c': 1, 'f': 1, 't': 2, 'h': 1, 'm': 1, '.': 1}

三、集合推导式

集合推导式生成集合,和列表推导式的语法格式类似,语法如下:

'''
{表达式 for item in 可迭代对象}
或者
{表达式 for item in 可迭代对象 if 条件判断}
'''

例子

s = {x for x in range(100) if x % 7 == 0}
print(s)    # {0, 98, 35, 70, 7, 42, 77, 14, 49, 84, 21, 56, 91, 28, 63}

四、生成器推导式

元组是没有推导式的,元组推导式生成的是一个生成器对象
一个迭代器只能运行一次,第一次迭代可以得到数据,第二次迭代不会显示数据

例子

t1 = (x*2 for x in range(1,100) if x % 9 == 0)
print(t1)     # <generator object <genexpr> at 0x00000257B30D69E8>
print(list(t1))    # [18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]
print(tuple(t1))   # ()

t2 = (x*2 for x in range(1,100) if x % 9 == 0)
for t in t2:
    print(t,end="\t")    # 18    36    54    72    90    108    126    144    162    180    198

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python推导式创建数列的方法 - Python技术站

(0)
上一篇 2023年4月2日 下午4:35
下一篇 2023年4月2日 下午4:35

相关文章

  • python进程池中的回调函数

    什么是回调函数 指定一个任务后、并且指定一个回调函数后,当指定的进程池执行的任务结束后,会将该任务的返回值作为回调函数的参数传递到回调函数中,并且回调函数得以执行 回调函数在主进程中被执行 import os from multiprocessing import Pool def func1(n): print(‘in func1’, os.getpid(…

    python 2023年4月17日
    00
  • Python教程:高级特性

    1.切片 L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。 如果第一个索引是0,还可以省略: >>> L =[‘Michael’, ‘Sarah’, ‘Tracy’, ‘Bob’, ‘Jack’] >>> L[:3] [‘Michael’, ‘Sarah’, ‘Tracy…

    Python开发 2023年3月31日
    00
  • Python学习:绑定方法与非绑定方法

    一、绑定方法与非绑定方法 类中定义的函数分为两大类:绑定方法和非绑定方法 其中绑定方法又分为绑定到对象的对象方法和绑定到类的类方法。 在类中正常定义的函数默认是绑定到对象的,而为某个函数加上装饰器@classmethod后,该函数就绑定到了类。 我们在之前的章节中已经介绍过对象方法了,本节我们主要介绍类方法。类方法通常用来在__init__的基础上提供额外的…

    Python开发 2023年4月2日
    00
  • Python学习:基础练习题

    1.输出0到100的数字,如果数字是3的倍数输出Fizz,5的倍数输出Buzz。 同时是3和5的倍数输出FizzBuzz,其他情况则打印原数字 for i in range(100): if i==0: print(i) elif i%3==0 and i%5==0: print(“FizzBuzz”) elif i%3==0: print(“Fizz”) …

    Python开发 2023年4月2日
    00
  • Python学习:构造函数与析构函数

    1.构造函数: __init__(self), 这个方法就是构造函数,在实例化的时候自动调用。 所有如果这个函数内有打印的方法,当实例出来的时候会打印里面的信息。 __init__方法的第一个参数永远都是self,表示创建实例本身,在__init__方法内部,可以把各种属性绑定到self,因为self指向创建的实例本身。 有了__init__方法,在创建实例…

    Python开发 2023年4月2日
    00
  • Python中的main方法教程

    估计很多人跟我一样初学python看代码的时候先找一下main()方法,从main往下看。但事实上python中是没有你理解中的“main()”方法的。 言归正传 if name == “main”:可以看成是python程序的入口,就像java中的main()方法,但不完全正确。事实上python程序是从上而下逐行运行的,在.py文件中,除了def后定义函…

    Python开发 2023年3月31日
    00
  • Python中文分词库——jieba的用法

    1.介绍 jieba是优秀的中文分词第三方库。由于中文文本之间每个汉字都是连续书写的,我们需要通过特定的手段来获得其中的每个单词,这种手段就叫分词。而jieba是Python计算生态中非常优秀的中文分词第三方库,需要通过安装来使用它。 jieba库提供了三种分词模式,但实际上要达到分词效果只要掌握一个函数就足够了,非常的简单有效。 安装第三方库需要使用pip…

    python 2023年4月25日
    00
  • Python教程:如何创建多线程?

    一、python线程的模块 1.thread和threading模块 thread模块提供了基本的线程和锁的支持 threading提供了更高级别、功能更强的线程管理的功能。 2. Queue模块 Queue模块允许用户创建一个可以用于多个线程之间共享数据的队列数据结构。 3.注意模块的选择 避免使用thread模块 因为更高级别的threading模块更为…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部