首页 > 编程语言 >python 推导式

python 推导式

时间:2024-04-04 15:44:42浏览次数:24  
标签:10 word 推导 python squared range 写法

推导式说明

推导式(Comprehensions)是Python中一种非常有用和灵活的工具,允许以简洁的方式从一个或多个迭代器快速创建数据结构。Python支持的推导式主要有四种:列表(List)推导式、字典(Dictionary)推导式、集合(Set)推导式和生成器(Generator)推导式。

列表推导式

用途:快速生成列表。
语法:[返回值 for 元素 in 可迭代对象 if 条件]
返回值:返回一个新的列表

示例

#生成0到9每个数的平方,只包括偶数

#推导式写法
squared_evens = [x**2 for x in range(10) if x % 2 == 0]
print(squared_evens)

#普通写法
squared_evens = []
for x in range(10):
    if x % 2 == 0:
        squared_evens.append(x**2)
print(squared_evens)

# 输出结果
[0, 4, 16, 36, 64]
# 打印九九乘法表。

#推导式写法
[print(' '.join(f"{i}*{j}={i * j:2}" for j in range(1, i + 1))) for i in range(1, 10)]

#普通写法
for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}x{i}={i*j:2}", end="\t")
    print()
    
# 输出结果
1x1= 1	
1x2= 2	2x2= 4	
1x3= 3	2x3= 6	3x3= 9	
1x4= 4	2x4= 8	3x4=12	4x4=16	
1x5= 5	2x5=10	3x5=15	4x5=20	5x5=25	
1x6= 6	2x6=12	3x6=18	4x6=24	5x6=30	6x6=36	
1x7= 7	2x7=14	3x7=21	4x7=28	5x7=35	6x7=42	7x7=49	
1x8= 8	2x8=16	3x8=24	4x8=32	5x8=40	6x8=48	7x8=56	8x8=64	
1x9= 9	2x9=18	3x9=27	4x9=36	5x9=45	6x9=54	7x9=63	8x9=72	9x9=81
result = [(i,j) for i in range(7) for j in range(20,25) if i>4 and j>23]

# 普通写法
result = []
for i in range(7):
    for j in range(20, 25):
        if i > 4 and j > 23:
            result.append((i, j))

# 输出结果
[(5, 24), (6, 24)]
["{:04}.{}".format(i,"".join([chr(random.randint(97,122)) for j in range(10)])) for i in range(10)]

# 普通写法
result_list = []  
for i in range(10):
    random_string = ""  
    for j in range(10):
        random_character = chr(random.randint(97, 122))  
        random_string += random_character  
    formatted_string = "{:04}.{}".format(i, random_string)  
    result_list.append(formatted_string)  

print(result_list)

# 输出结果
['0000.zazvpobugw', '0001.xzwrgoiumx', '0002.klhgtboqll', '0003.voyrwbggrn', '0004.jumetngmuz', '0005.xxwxersszt', '0006.txphxctdsq', '0007.kxklliexjf', '0008.wekigtlifi', '0009.wisemnokrh']

字典推导式

用途:快速生成字典。
语法:{返回值 for 元素 in 可迭代对象 if 条件}
返回值:立即返回一个字典

 

示例

# 将单词列表转换为字典,其中键是单词,值是单词的长度。

# 推导式写法
words = ["apple", "banana", "cherry"]
word_lengths = {word: len(word) for word in words}

普通写法
words = ["apple", "banana", "cherry"]
word_lengths = {}
for word in words:
    word_lengths[word] = len(word)

# 输出结果
{'apple': 5, 'banana': 6, 'cherry': 6}

集合推导式

用途:快速生成集合。
语法:{返回值 for 元素 in 可迭代对象 if 条件}
返回值:立即返回一个集合

示例

# 生成一个包含0到9内所有偶数的集合。

# 推导式写法
evens = {x for x in range(10) if x % 2 == 0}

# 普通写法
evens = set()
for x in range(10):
    if x % 2 == 0:
        evens.add(x)

# 输出
{0, 2, 4, 6, 8}

生成器推导式

用途:创建一个生成器,用于按需生成项目,节省内存。
语法:(返回值 for 元素 in 可迭代对象 if 条件)
返回值:返回一个生成器

示例

# 创建一个生成器,生成0到9的每个数字的平方。

# 推导式写法
squared_numbers = (x**2 for x in range(10))

# 普通写法
def squared_numbers_generator():
    for x in range(10):
        yield x**2
squared_numbers = squared_numbers_generator()

标签:10,word,推导,python,squared,range,写法
From: https://www.cnblogs.com/wangguishe/p/18103524

相关文章

  • 【递推与递归】python例题详解
    文章目录1、递归实现指数型枚举2、递归实现排列型枚举3、递归实现组合型枚举4、简单斐波那契5、带分数6、翻硬币1、递归实现指数型枚举题目从 1∼n这 n个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一......
  • Python快速入门系列-8(Python数据分析与可视化)
    第八章:Python数据分析与可视化8.1数据处理与清洗8.1.1数据加载与查看8.1.2数据清洗与处理8.1.3数据转换与整理8.2数据可视化工具介绍8.2.1Matplotlib8.2.2Seaborn8.2.3Plotly8.3数据挖掘与机器学习简介8.3.1Scikit-learn8.3.2TensorFl......
  • 自然语言处理:Python的spaCy库及文章人名统计
    在不断发展的自然语言处理领域中,Python的spaCy库以其强大和用户友好的特性脱颖而出。本学习笔记深入探讨利用spaCy进行基本NLP任务,包括分词、句子切分、词性标注、命名实体识别,以及一个实际应用示例——识别文本中的人名。安装spaCy库spaCy·Industrial-strengthNaturalL......
  • 基于python的豆瓣电影数据的可视化与分析
    1项目背景意义介绍    电影是一种具有极高娱乐性和文化价值的艺术形式,自从电影产业诞生以来,已经成为了人们生活中的重要组成部分。电影产业在全球范围内都有着广泛的影响力,对经济、文化、社会等多个方面都起到了积极的作用。因此,对电影产业进行数据分析和可视化,可以帮......
  • 利用python 实现微信自动回复
    全是干货,上代码#!/usr/bin/python3#-*-coding:utf-8-*-importpandasaspdimportnumpyasnpfromuiautomationimportWindowControl,MenuControl#绑定微信主窗口wx=WindowControl(Name='微信',#searchDepth=1)#切换窗口wx.SwitchToThi......
  • 探索Anaconda:创建Python虚拟环境
    目录 1.创建虚拟环境2.激活虚拟环境3.退出虚拟环境:4.常用命令4.1安装(使用pip或者conda都行,下面展示conda)4.2查看已安装的包4.3更新包4.4删除虚拟环境 1.创建虚拟环境打开AnacondaPrompt(或者终端),使用以下命令创建一个名为myenv的Python虚拟环境:conda......
  • django基于python的学生选课成绩信息管理系统7s7c8
    随着国内外教育事业的不断发展,加快教育信息化建设已成为我国教育事业改革与发展的必然选择。我国高校招生规模不断扩大,大量的学生信息管理就成了一个非常棘手的问题。依靠传统模式的利用人工进行学生的信息管理,费时费力,严重影响了教师的工作效率。而基于网络化的学生信息管理平......
  • python中小学教学一体化管理系统django-pycharm毕业设计
    根据近年来学校的发展情况,结合文献资料,对槐荫中学教学管理的信息化;至此,开发具有一定的技术可行性和安全性。该系统的核心内容是对首页、个人中心、学生管理、教师管理、教学计划管理、授课信息管理、培养计划管理、学生评价管理、在线考试管理、试题内容管理、系统管理、考试......
  • 【python学习过程--day1】认识python及其开发工具:VScode和pycharm的安装和激活
    认识python        Python是一种高级、通用、解释型编程语言,由GuidovanRossum在1980年代末和1990年代初设计开发的。它具有简洁清晰的语法和强大的标准库,因此被广泛用于Web开发、科学计算、人工智能、数据分析、系统自动化等领域。Python的设计哲学强调代码的可读性......
  • Python爬虫如何快速入门
    写了几篇网络爬虫的博文后,有网友留言问Python爬虫如何入门?今天就来了解一下什么是爬虫,如何快速的上手Python爬虫。一、什么是网络爬虫网络爬虫,英文名称为WebCrawler或Spider,是一种通过程序在互联网上自动获取信息的技术。它根据指定的规则,从互联网上下载网页、图片、视......