我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python数据类型相关知识扩展

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python数据类型相关知识扩展

一、命名元祖

在python基础中, 我们学习元祖的时候,取元祖内部的元素都是通过索引来进行取值的。但是这种取值方式不够友好, 所以我们引入命名元祖的方式对元祖进行字典式取值,这种方式比起字典存储占用的内存较少。如果数据不需要变化,可以用命名元祖替代字典。

常规元祖取值方式:


info = ("flora", 28, "女")
name = 0
age = 1
gender = 2

print(info[name])  # 获取姓名
print(info[age])  # 获取年龄
print(info[gender])  # 获取性别

命名元祖方式:


# namedtuple: 接收两个参数:第一个参数是创建的类型名称, 第二个参数是列表
from collections import namedtuple

info = namedtuple("info_key", ["name", "age", "gender"])
info_01 = info("flora", 28, "女")

print(info_01.name)  # 获取姓名
print(info_01.age)  # 获取年龄
print(info_01.gender)  # 获取性别
print(info_01)  # 打印结果:info_key(name='flora', age=28, gender='女')

二、在自动化测试场景中的应用

我们从excel中读取用例数据第一行表头是key, 每一行的值是value。如果作为字典格式存储格式如下:


case = [
    {"case_id": 1,
     "case_title": "正常登录",
     "data": "test",
     "expected": "pass"},
    {"case_id": 2,
     "case_title": "登录失败",
     "data": "test",
     "expected": "pass"},
]

我们可以把转成命名元祖的方式存储,如下:


# namedtuple: 接收两个参数:第一个参数是创建的类型名称, 第二个参数是列表
from collections import namedtuple

case = [
    {"case_id": 1,
     "case_title": "正常登录",
     "data": "test01",
     "expected": "pass"},
    {"case_id": 2,
     "case_title": "登录失败",
     "data": "test02",
     "expected": "pass"},
]

cases = namedtuple("case", case[0].keys())

for i in case:
    result = cases(*i.values())
    print(result.data)

# 打印结果: test01  test02

三、三目运算符

python中的三目运算符相当于java中的三元运算符。

  • 基本语法

条件成立执行的结果 if 过滤条件 else 条件不成立执行的结果

  • 实际应用

例如我们想要编写一个Python程序,输入两个数,比较它们的大小并输出其中较大者。相比起常规写法,三目运算符写法更加的简洁明了。

常规写法:


x = int(input("请输入第一个正整数:"))
y = int(input("请输入第二个正整数:"))

if x == y:
    print("较大的数为:", x)
elif x > y:
    print("较大的数为:", x)
else:
    print("较大的数为:", y)

三目运算符写法:


x = int(input("请输入第一个正整数:"))
y = int(input("请输入第二个正整数:"))

print("较大的数为:{}".format(x if x > y else y))
  • 扩展: 三目运算符的嵌套

Python 三目运算符支持嵌套,如此可以构成更加复杂的表达式。在嵌套时需要注意 if 和 else 的配对。
例如我们需要判断两个数字的关系。
常规写法:


a = int(input("请输入a:"))
b = int(input("请输入b:"))

if a > b:
    print("a大于b")
else:
    if a < b:
        print("a小于b")
    else:
        print("a等于b")

三目运算符嵌套写法:


a = int(input("请输入a:"))
b = int(input("请输入b:"))

print("a大于b") if a > b else (print("a小于b") if a < b else print("a等于b"))

四、推导式


推导式 comprehensions(又称解析式),是 python 的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列。
推导式的作用:快速生成数据。

列表推导式

  • 常规列表推导式

基本语法:[每次遍历添加到列表的内容 for x in xxx]

实例:输出一个由0-100的数字组成的列表。
常规写法:


li = []
for i in range(101):
    li.append(i)
print(li)

推导式写法:


li = [i for i in range(101)]
print(li)
  • 列表推导式嵌套if

基本语法:[每次遍历添加到列表的内容 for x in xxx if 过滤条件]
实例:输出一个由0-100的偶数数字组成的列表。
常规写法:


li = []
for i in range(101):
    if i % 2 == 0:
        li.append(i)
print(li)

推导式写法:


li = [i for i in range(101) if i % 2 == 0]
print(li)
  • 列表推导式结合三目运算符

基本语法:[if 过滤条件 else 条件 每次遍历添加到列表的内容 for x in xxx ]

实例:0-100个数,如果是偶数则返回偶数0, 如果是奇数则返回奇数1。
常规写法:


li = []
for i in range(101):
    if i % 2 == 0:
        li.append("偶数0")
    else:
        li.append("奇数1")
print(li)

列表推导式+三目运算符:


li = ["偶数0" if i % 2 == 0 else "奇数1" for i in range(101)]
print(li)

五、字典推导式

基本语法:{键:值 获取键值的表达式}

实例: 有一个列表li, 把他转换成一个元素下标为键,值为元素的字典格式的数据。

常规写法:


li = ["id", "title", "url", "data", "expected"]

dic = {}
for i, j in enumerate(li):
    dic[i] = j

print(dic)

字典推导式写法:


li = ["id", "title", "url", "data", "expected"]

dic = {i: j for i, j in enumerate(li)}

print(dic)

到此这篇关于python数据类型相关知识扩展的文章就介绍到这了,更多相关python数据类型内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python数据类型相关知识扩展

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python类的相关知识有哪些

小编给大家分享一下Python类的相关知识有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、什么是类类(class),作为代码的父亲,可以说它包裹了很多有趣
2023-06-15

python--初始面向对象:类的相关知识,对象的相关知识

引子假设你是一个开发人员,现在需要你开发一款叫做当然很简单,两个角色,1个人物,1个boss,且人物和boss都有不同的技能,比如人物用觉醒技能秒了boss,掉了xx装备,boss用大招秒了人物,人物死亡,怎么描述这种不同的人物和他们的功能
2023-01-30

Python基础知识(五)--数据类型

#标识符,以字母或下划线开头,不与关键字重复  #不使用系统内置标识符、函数名、异常名  #不使用开头和结尾都是下划线作为自定义标识符名  #以免与系统定义的特殊方法或变量冲突  #当循环不影响实际变量的时候,可以在for..in中使用单个
2023-01-31

[转载] Python数据类型知识点全解

[转载] Python数据类型知识点全解1.字符串字符串常用功能name = 'derek'print(name.capitalize()) #首字母大写 Derekprint(name.count("e")) #统计字符
2023-01-31

Python的数据类型知识点有哪些

本篇内容主要讲解“Python的数据类型知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的数据类型知识点有哪些”吧!变量方法举例备注用变量存储值name = "xxx"pr
2023-06-26

redis基础知识数据类型

1. rediswindow系统的redis是微软团队根据官方的linux版本高仿的官方原版: https://redis.io/中文官网:http://www.redis.cn1.1 redis下载和安装下载地址: https://github.com/Mi
redis基础知识数据类型
2015-12-26

Python基础之数据类型知识有哪些

这篇文章给大家分享的是有关Python基础之数据类型知识有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、数字类型1、整型int就是整数 :100 ,200,2,3,4·······2、浮点型 float小
2023-06-15

python3第四天(基本数据类型扩展)

数字Number数字数据类型用于存储数值,数据类型是不允许改变的,因此要改变数字数据类型的值时,会被重新分配空间.因为变量是直接使用,所以可直接输入变量名.也可同时赋值.如,var1=10;删除变量用del 变量名1,变量名2...pyth
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录