10公共操作与推导式

yizhihongxing

公共操作与推导式

公共操作

操作方法 功能 描述 操作类型
+ 合并 将两个相同类型序列进行连接 字符串、列表、元组
* 复制 将里面的数据进行复制 字符串、列表、元组
len 获取序列长度 查看序列长度 字符串、列表、元组、字典,集合
reversed 倒置 将容器里面的数据倒置 字符串、列表、元组、字典
max, min 最大最小值 求容器数据的最大最小值 字符串、列表、元组、字典(key),集合
sum 求和 将容器的数据求和 列表、元组、字典(key,其为字符串不能使用),集合
enumerate 索引映射 将索引映射给容器里面的数据 列表、元组、或字符串
in, not in 是否存在 判断数据是否存在于容器内 字符串、列表、元组、字典,集合
del 删除 删除变量或者指定容器内数据 变量,容器里面的值
# reversed   倒置         将容器里面的数据倒置        字符串、列表、元组、字典
l1 = [1, 2, 3]
print(reversed(l1))     # <list_reverseiterator object at 0x0000022CE5786A40>
# 可以转为列表使用或者for循环使用
print(list(reversed(l1)))  # [3, 2, 1]
for i in reversed(l1):
    print(i)
# 3
# 2 
# 1

# enumerate  索引映射      索引映射给容器里面的数据    列表、元组、或字符串
l1 = ['a', 'b', 'c']
# 转换为常见数据类型或for循环使用
print(list(enumerate(l1)))     # [(0, 'a'), (1, 'b'), (2, 'c')]
for index, data in enumerate(l1, start=0):	# start = 开始的索引值(不写也可,默认为0)
    print(index, data)
# 0 a
# 1 b
# 2 c

容器类型的转换

  • 所有数据类型都可以转换为字符串
  • 转换为集合的时候需要注意数据的去重
  • 字典数据转换是需要注意按照key还是value转换
# 字典转为列表
goods = {"name1": "可乐", "name2": "雪碧", "name3": "炸鸡"}
list1 = list(goods)
print(list1)  # ['name1', 'name2', 'name3']   所有的key值转换成了列表
list2 = list(goods.values())
print(list2)  # ['可乐', '雪碧', '炸鸡']  所有的value值转换成了列表

# 列表转字典
# 列表是不能够直接dict转换成字典
# 1)嵌套列表转字典
a = ['可乐', '雪碧']
b = ['3元', '5元']
c = [a, b]  # 嵌套的形式转换
print(c)    # [['可乐', '雪碧'], ['3元', '5元']]
print(dict(c))  # {'可乐': '雪碧', '3元': '5元'}
# ps:若列表长度不一致,会报错

# 2)使用zip()函数将列表转换成字典
a = ['可乐', '雪碧', '炸鸡']
b = ['3元', '5元']
c = zip(a, b)
print(c)    # <zip object at 0x0000010FC5DD0040>
print(list(c))  # [('可乐', '3元'), ('雪碧', '5元')]  若长度不一样,多出的元素会不显示。
print(dict(c))  # {'可乐': '3元', '雪碧': '5元'}  若长度不一样,多出的元素会不显示。

列表推导式和三元表达式

# 列表推导式
# 代码简写,增加运行效率  减少代码可读性,难理解

# 普通写法
list_data = []
for i in range(10):
    list_data.append(i)
print(list_data)

# 推导式写法 不是所有代码都可以简写为推导式,只有一种固定操作
# 创建列表,循环数据,添加数据(append),没有其他操作
list_data = [i for i in range(10)]
print(list_data)


# 普通写法
list_data = []
for i in range(10):
    if i % 2 == 0:
        list_data.append(i)

 print(list_data)

# 创建列表,循环数据,添加数据位置永远在最前面 if(多个也可以,但不建议,可读性太差)放后面
list_data = [i for i in range(10) if i % 2 == 0]
print(list_data)

# 三元表达式

# 普通写法
age = 16
if age > 18:
    print("成年")
else:
    print("未成年")

# 三元表达式的写法
age = 16
print("成年") if age > 18 else print("未成年")

# 普通写法,if分支语句种含有赋值
age = 16
if age > 18:
    data = 1
else:
    data = 0

print(data)

# if分支语句种含有赋值的三元表达式写法
data = 1 if age > 18 else 0
print(data)

# 列表推导式与三元表达式

# 普通写法
list_data = []
for i in range(10):
    if i % 2 == 0:
        list_data.append(i)
    else:
        list_data.append((str(i)))

print(list_data)
# 列表推导式与三元表达式结合使用
list_data = [i if i % 2 == 0 else str(i) for i in range(10)]
 print(list_data)

ps:一般使用较多的就是列表创建时的列表推导式,其他不推荐使用,代码可读性太差,只需要认识其表达含义即可。

原文链接:https://www.cnblogs.com/daguo118/p/17312219.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:10公共操作与推导式 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • 关于Python与Golang语言的对比分析

    关于Python与Golang语言的对比分析 前言 随着科技的发展,编程语言也在不断地发展和更新。Python和Golang是目前比较热门的编程语言之一。那么在实际使用中,这两种语言有什么不同之处呢?本文将从性能、语法及应用场景等方面对Python和Golang进行对比分析。 性能 Python和Golang在性能方面存在较大区别。Golang是一种编译型语…

    python 2023年5月18日
    00
  • Python接口开发实现步骤详解

    Python接口开发是一种常见的Web开发方式,它可以将Python代码封装成API接口,供其他应用程序调用。以下是Python接口开发的详细攻略: 1. 实现步骤 以下是Python接口开发的实现步骤: 安装Flask框架:Flask是一个轻量级的Web框架,可以用于快速开发Python Web应用程序。可以使用pip命令安装Flask框架: pip in…

    python 2023年5月15日
    00
  • python中for循环把字符串或者字典添加到列表的方法

    以下是“Python中for循环把字符串或者字典添加到列表的方法”的完整攻略。 1. 概述 在Python中,我们可以使用for循环将字符串或典添加到列表。这种方法可以方便地将多个字符串或字典组合成一个列表以便于后续的处理和操作。 2. 把字符串添加到的方法 2.1 使用for循环 使用for循环可以方便地将多个字符串添加到列表中。示例如下: my_list…

    python 2023年5月13日
    00
  • Python+tkinter实现网站下载工具

    Python是一种强大的编程语言,它非常适合开发各种实用工具。随着互联网的普及,网站下载工具也成为了许多用户的必备工具之一。在本文中,我们将引导您通过Python+tkinter实现一个简单的网站下载工具。整个过程中,我们将会使用到以下几个步骤: 构建GUI界面 输入要下载的网站URL 解析HTML文档获取下载链接 下载文件并显示进度条 下面将详细讲解这几个…

    python 2023年6月13日
    00
  • Python configparser模块应用过程解析

    Python configparser模块应用过程解析 简介 Python configparser模块是Python标准库中的模块之一,它可以用于读取、修改INI文件中的配置信息。INI文件是一种格式简单的配置文件格式,常用于存储应用程序、操作系统等的配置信息。 模块介绍 configparser模块包含三个类: ConfigParser:主要用于读取、修…

    python 2023年5月20日
    00
  • python利用re,bs4,requests模块获取股票数据

    以下是详细讲解“Python利用re, bs4, requests模块获取股票数据”的完整攻略。 1. 问题描述 在Python中,我们可以使用re、bs4和requests模块获取股票数据。本文将介绍如何使用这些模块获取股票数据。 2. 解决方法 在Python中我们可以使用re、bs4和requests模块获取股票数据。下面是一个示例代码: import…

    python 2023年5月14日
    00
  • 详细分析python3的reduce函数

    详细分析Python3的reduce函数 Python3的reduce函数是一个内置函数,用于对一个序列进行累积计算。它接受一个函数和一个序列作为参数,并返回一个单一的值。本文将详细分析Python3的reduce函数,包括其基本用法和示例。 reduce函数的基本用法 reduce函数的基本语法如下: reduce(function, sequence[,…

    python 2023年5月15日
    00
  • 如何使用Python实现按照日期范围查询数据库数据?

    以下是使用Python实现按照日期范围查询数据库数据的完整攻略。 按照日期范围查询简介 按照日期范围查询是指在数据库中查询一时间范围内的数据。在Python中,可以使用pymysql库实现按照日期范围查询数据库数据。 步骤1:连接到数据库 在Python中,可以使用pymysql库连接到MySQL数据库。以下是连接到MySQL数据库的基本语法: import…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部