Python入门之列表生成式、字典生成式

Python中字典的创建、增、删、改、获取、遍历操作及生成式 文章目录前言一、什么是字典二、字典的原理三、字典的创建四、字典的常用操作1. 字典中元素的获取2. []取值与使用get()取值的区别3.字典元素的增、删、改操作(1)key的判断(2)字典元素的增、删、改4. 获取字典视图的三个方法5. 字典元素的遍历五、字典的特点六、字典生成式1. 内置函数zip()2. 字典生成式总结 前言 此篇文章是我在B站学习时所做的笔记,大部分图片都是课件老师的PPT,部分代码为亲自动手演示过的,方便复习用。此篇文章仅供学习参考。 提示:以下是本篇文章正文内容,下面案例可供 阅读详情

一、列表生成式

1. 非列表生成式

s = '51 5000 10000'
li = []
for item in s.split():
    li.append(int(item))
print(li)
k,a,b = li
print(k,a,b)

2.列表生成式

s = '51 5000 10000'
li = [int(item) for item in s.split()]
print(li)

练习1:输出[1**1 2**2 .. 9**9]

方法一:

li = []
for i in range(1,10):
    li.append(i ** i)
print(li)

方法二:列表生成器

print([i ** i for i in range(1,10)])

练习2:找出1——10之间所有偶数,并且返回一个列表(包含以这个偶数为半径的圆的面积)

import math
print([math.pi * r * r for r in range(2,11,2)])

练习3:找出1~n之间所有的质数

def isPrime(num):
    for i in range(2,num):
        if num % i == 0:
            return False
    else:
        return True
 
print([i for i in range(2,101) if isPrime(i)])

练习4:给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7) [2,3,5,7]

输入描述:输入包括一个整数n,(3 ≤ n < 1000)

输出描述:输出对数

示例1 : 输入:25   输出:1(2+23)

num = int(input())
def isPrime(num):
    for i in range(2,num):
        if num % i == 0:
            return False
    else:
        return True
primeli = [i for i in range(2,num) if isPrime(i)]
print(primeli)
primecount = 0
for item in primeli:
    if (num - item) in primeli and item <= num - item:
        primecount += 1
print(primecount)

二、列表生成式变形

1. s1 = 'ABC' s2='123',输出结果为A1 A2 A3 ... C1 C2 C3

print([i + j for i in 'ABC' for j in '123'])

 

2. li  = [ [1,2,3], [4,5,6],[7,8,9] ]将该列表中的元素打印输入为如下格式[ 1,2,3,4,5,6,7,8,9]

li = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
]
#方法一:
resultli = []
for item1 in li:
    for item2 in item1:
        resultli.append(item2)
print(resultli)
 
#方法二:
print([item2 for item1 in li for item2 in item1])

二 字典生成式

1.假设有20个学生,名字为westosx,学生分数在60-100之间,筛选出成绩在90分以上的学生

方法1:
import random
stuInfo = {}
for i in range(20):
    name = 'westos' + str(i)
    score = random.randint(60,100)
    stuInfo[name] = score
print(stuInfo)
highscore = {}
for name,score in stuInfo.items():
    if score > 90:
        highscore[name] = score
print(highscore)


方法2:使用字典生成器
import random
stuInfo = {}
for i in range(20):
    name = 'westos' + str(i)
    score = random.randint(60,100)
    stuInfo[name] = score
print(stuInfo)
print({name: score for name,score in stuInfo.items() if score > 90})

2. 将所有的key值变为小写

例如:d = dict(a=1,b=2,c=2,B=9,A=10),将所有key变为小写,并合并相同key的键值(a=11,b=11,c=2)

方法1:
d = dict(a=1,b=2,c=2,B=9,A=10)
print(d)
new_d = {}
for i in d:
    new_d[i.upper()] = d[i]
print(new_d)
new_d = {}
for k,v in d.items():
    low_k = k.lower()
    if low_k not in new_d:
        new_d[low_k] = v
    else:
        new_d[low_k] += v
print(new_d)


方法二:字典生成式
d = dict(a=1,b=2,c=2,B=9,A=10)
print({k.lower(): (d.get(k.lower(),0) + d.get(k.upper(),0)) for k in d})

 

Python学习(七):列表生成式,字典生成式 列表生成式 在一开始我们用普通的办法来生成一个列表,如下图所示 但是这样我们发现明显不是很方便,因为我们知识像建立一个列表而已,那么在这里我们就可以用一条语句直接生成一个同上面一样结果的程序,我们把这种生成方式叫做列表生成式 列表生成式语法格式: [exp for iter_var in iterable] exp:iter_var的运算 其作用同 l = [] for iter_va... 阅读详情

相关推荐

第47讲:Python字典对象生成式的概念以及应用案例

字典生成式用于快速创建出一个字典,根据指定的字典元素生成表达式,通过for-in循环遍历从而快速创建出字典。例如我们想要生成字典,除了直接创建外,还可以通过for-in循环。#定义Key和Value的来源列表,user列表的元素全是字典中的Key,age列表的元素全是字典中Key对应的Value users = [ 'jiangxl' , 'wangwu' , 'zhangsan' ] ages = [ 28 , 36 , 42 ] #定义一个空字典 userex = {

江晓龙的博客 2万+

【Python基础】10.2 字典生成式

1、假设有20个学生,学生的分数在60~100之间,筛选出成绩在90 分以上的学生 import random #成绩单的制定 student={} for i in range(20): name='yunyuzhu' + str(i) score = random.randint(60,100) student[name] = sco...

yunyuzhu的博客 2178

基于51单片机的简易计算器设计(原理图+仿真+源代码+参考论文)

本设计以51单片机为核心,矩阵键盘输入数字,通过1602显示屏显示计算结果,能够实现整数的加、减、乘、除四则运算,具备清除功能。

u012759563的博客 7702

Python入门--字典生成式,生成字典的公式

#字典生成式(即生成字典的公式) #items=['Fruits','Books','Others'] #prices=[96,78,85] #{'Fruits':96,'Books':78,'Others':85} #内置函数zip() #用于将可迭代的对象(可以使用for-in循环遍历的对象就是可迭代的对象),作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表 ########################################### #{item:price f...

周周的博客 3984

基于STM32F407的定时器以及定时器中断的实现

基于STM32F407的定时器以及定时器中断的实现

weixin_57941207的博客 5229

dify离线部署

以bge-m3为例,本地部署bge-m3首先在一台能连网的linux服务器上(部署有ollama)创建想要保存模型的文件夹编辑ollama.service,配置ollama模型的保存路径添加模型存储地址将models目录设置属主,必须做,否则ollama无法启动重新加载配置文件并重启ollama测试ollama 运行是否正常最后拉取 bge-m3可在/opt/LLMModels/bge_m3/models目录下看到拉取得模型使用tar命令压缩文件夹。

weixin_42538734的博客 3072

Python字典生成式

Python字典生成式

Python热爱者的博客 1285

基于单片机的宠物狗智能项圈设计

GPS定位功能:利用GPS模块实时获取宠物的位置,帮助主人追踪宠物的活动轨迹。活动监测:使用加速度传感器监测宠物的活动情况,如运动、休息等,并进行分析。健康监测:集成心率传感器,实时监控宠物的心率,以确保其健康。声音识别功能:通过麦克风捕捉宠物的叫声,检测宠物的状态(如饥饿、疼痛等)。蓝牙/Wi-Fi通信:通过蓝牙或Wi-Fi模块与手机APP或云端平台进行数据交互,实时反馈宠物的状态信息。电池管理:实现低功耗设计,确保设备的续航能力。

2201_76125393的博客 2281

Python入门之列表、字典生成式

1 列表生成式 1.1 什么是列表生成式: 列表生成式是Python中内置的一种生成列表的表达式,返回值必须为列表 1.2 列表生成式的使用: 具体格式为:[expression for i in 序列 if…] 1.接收变量,将字符串s = '51 5000 10000’转变为三个整数,并被接收 (1)for循环生成列表 s = '51 5000 10000' li = [] for ite...

ly2020_的博客 584

YOLOv11 改进 | 模块即插即用

YOLOv11 是一种单阶段目标检测算法,其核心设计目标在于实现检测速度与精度的平衡。其架构延续了 YOLO 系列“端到端”检测的思路,通过统一的网络结构完成特征提取、多尺度特征融合及最终的边界框预测与分类任务。骨干网络(Backbone)颈部网络(Neck)和检测头(Head)。骨干网络负责从输入图像中提取多层次的语义特征。

u012133341的博客 3122

Python 爬虫进阶技巧:新手必学的反爬突破与效率优化

本文系统总结了爬虫进阶的核心技巧,针对新手常见的反爬拦截、效率低下、动态页面解析等痛点问题,提出了可落地的解决方案。主要内容包括:通过随机UA池、代理IP池和Cookie池突破常见反爬机制;利用多线程/异步请求提升爬取效率;使用Selenium解析动态渲染页面;以及数据清洗方法提升数据质量。文中提供了完整的代码示例和实战对比数据,并强调爬虫开发应遵守合规性要求。这些技巧能帮助开发者快速提升爬虫实战能力,应对80%以上的常见爬取需求。

2503_91057718的博客 1436

Python零基础到入门-列表推导式、字典生成式和元组生成式

语法: {变量1:变量 for 变量1 in 可迭代对象:for 变量2 in 可迭代对象 if 表达式}语法: [表达式 for 变量名 in 可迭代类型 if 条件]

2301_80477093的博客 143

NVIDIA Jetson之远程控制软件NoMachine安装使用

参考:https://www.bilibili.com/video/BV1cg4y1i776?t=12 0 背景

ZONGXP的博客 1万+

Python入门学习-DAY12-递归、三元表达式、列表生成式、字典生成式、匿名函数

递归 1 什么是函数递归 函数的递归调用是函数嵌套调用的一种特殊形式,在调用一个函数的过程中又直接或者间接地调用该函数 本身,称之为函数的递归调用 递归调用必须有两个明确的阶段: 1. 回溯: 一次次递归调用下去,说白了就一个重复的过程,但需要注意的是每一次重复问题的规模都应该有所减少,直到逼近一个最终的结果,即回溯阶段一定要有一个明确的结束条件 2...

weixin_30849403的博客 234

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Python入门

1 课程介绍1.1 Python 入门课程介绍 2 安装 Python2.1 选择Python版本2.2 Windows上安装Pythonpython官网下载python2.7版本->安装->配置环境变量 dos命令: python->进入python交互环境 exit()->退出python交互环境2.3 第一个Python程序2.3.1 Notepad++编写pyt

amoscxy的博客 377

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

一天快速入门python_一天一语言:快速入门python

Python教程太过繁杂,针对的前提的没怎么接触过编程的人士,最近在学Python,特列出与C程序不同之处,方便C程序员快速入门。编译执行python本身是解释性语言,不需要编译,可以直接使用python执行python xxx.py如果你嫌麻烦,可以在脚本的第一行指定解释器,即可把开头的python省略#!/usr/bin/python# -*- coding: UTF-8 -*- #这行中...

weixin_39818662的博客 247

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python语法文章集锦

python语法文章集锦 @staticmethod怎么用?

weixin_40162095的博客 422

python基础笔记_Python入门笔记 看看各路大神都是如何入门的

Python入门笔记 看看各路大神都是如何入门的时间:2018-01-24来源:Python入门笔记分享Python入门是每一位Python学习人员经常谈论到的问题,有些人认为Python入门十分的困难,所以一直徘徊在学习Python的边缘,今天小编汇总一些Python入门学习笔记,今天的这份Python入门笔记主要围绕Python函数、切片、迭代、列表生成式几个方面来写的,正在入门的小...

weixin_39722692的博客 82

小白python入门(二)_列表[]字典{}元组()集合{}

小白python入门(二)7. 程序的组织结构8. pass语句9.内置函数10.列表[]1)创建2)查找 获取3)添加4)删除5)修改6)排序7)列表生成式11.字典{}1)创建2)获取 判断3)增加 删除 改4)视图5)遍历6)字典生成式12.元组()1).创建2)获取13.集合1)创建2)增加3)删除4)集合之间的关系5)数学操作6)生成式 7. 程序的组织结构 顺序结构 程序重上到下 依次执行 分支结构 a =100 if a>10: print("ok"

beginner的博客 272

python(列表生成式/器)

一、列表生成式 #列表生成式是快速生成一个列表的一些公式 numbers = [] for x in range(0,101): numbers.append(x) print(numbers) #[要放入列表的数据 简单的表达式1 表达式2] #x for x in range(0,101) for循环遍历出来的值,放入列表中 numbers =[x for x in range(0,

博客小白 1万+

课程五:Python列表生成式——用一行代码玩转数据

结合生活化案例、分步引导和互动练习,帮助学生快速掌握 Python 列表生成式的核心用法

yakoo5的专栏 785

Python 列表生成式 & 字典生成式

通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in range(10): user_list.append(i ** 2) print(user_list) 通过列表生成式直接生成示例: user_list = [x ** 2 for x in range(10)] print(user_list) 输出结果相同: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 通过列表生成式

python学习者的博客 1241

Python——列表生成式和字典生成式

一、列表生成式 1.普通的遍历循环写法 s = '51 5000 10000' li = [] for item in s.split(): li.append(int(item)) print(li) k,a,b = li print(k,a,b) #[1**1 2**2 .. 9**9] 求1到9的乘方 li = [] for i in range(1,10):...

yy1533974604的博客 856

列表生成式,字典生成式

列表生成列表生成式字典生成式高阶函数reduce [1,2,3,4,5] 是对于序列内的元素各自操作,但是得到各个元素得到一个统一的,整体的结果(如累加,累乘)(将前两个元素通过传入的函数操作,得到执行结果,而该执行结果接着与第三个元素一起操作) reduce(sum,[1,2,3,4,5]) 可能的结果:1+2+3+4+5 列表生成式 相较于之前使用for循环生成列表的方式,这种写法更专业 可能...

weixin_42996595的博客 1512

Python中的生成式(列表生成式、字典生成式)

列表生成式 列表生成式的格式: [expression for i in seq if...] ## 表达式+循环+条件 列表生成式的练习: 练习一: 对指定的字符串,用列表生成式表示出来 一般方法 s = '51 5000 10000' li = [] for item in s.split(): li.append(int(item)) k,a,b = li print(k,a,b...

weixin_45792518的博客 759
上一篇: Python入门之函数详细讲解
下一篇: Python入门之高阶函数、内置高阶函数
vanvan_
博客等级 码龄9年 106粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值