Python系统学习1-6-元组

】目录

一、列表与字符串转换

二、列表推导式

三、元组

1、元组基本操作 

2、元组和列表的内存图

 四、容器思想

homework


一、列表与字符串转换

(1) 列表转换为字符串:

result = "连接符".join(列表)

# 根据xx条件,循环拼接字符串
# 需求 range(10) 0123456789
# str_result = ""
# for item in range(10):
#     str_result += str(item)
#     # ""+"0"
#     # "0"+"1"
#     # "01"+"2"
#     # 缺点:每次循环相加时,都会产生新数据,替换旧数据
# print(str_result)

# 解决:利用可变数据代替不可变数据
#            列表        字符串
str_result = []
for item in range(10):
    str_result.append(str(item))
result = "".join(str_result)
print(result)

(2) 字符串转换为列表:

列表 = “a-b-c-d”.split(“分隔符”)

# 使用一个字符串存储多个信息
list_result = " 唐僧 , 孙悟空 , 八戒 " . split ( "," )
print ( list_result )

练习:

str_context = "I love you" # 将字符串翻转输出
str_list = str_context.split(" ")
str_list_ok = str_list[::-1]
print(" ".join(str_list_ok))

 二、列表推导式

(1) 定义:

使用简易方法,将可迭代对象转换为列表。

(2) 语法:

变量 = [表达式 for 变量 in 可迭代对象]

变量 = [表达式 for 变量 in 可迭代对象 if 条件]

(3) 说明:

如果条件不满足,则可迭代对象的元素将被丢弃。

# 练习一
# 生成10--30之间能被3或者5整除的数字
# 结果:[10, 12, 15, 18, 20, 21, 24, 25, 27]
list_result01 = []
for item in range(10,31):
    if item % 3 ==0 or item % 5 == 0:
        list_result01.append(item)
print(list_result01)
list_result02 = [item for item in range(10,31) if item % 3 ==0 or item % 5 == 0]
print(list_result02)

# 练习二
# 生成5 -- 20之间的数字平方
# 结果:[25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361]
list_result03 = [item ** 2 for item in range(5,21)]
print(list_result03)

三、元组

列表:由一系列变量组成的可变序列容器

元组:由一系列变量组成的不可变序列容器。

1、元组基本操作
   创建
   添加  不可变,没有
   定位
   删除  不可变,没有
   遍历
## 创建,列表放元组里,节省内存

tuple_01 =("dd","ee","ff")
list_01 = ["理理","红红"]
tuple_02 = tuple(list_01)

## 定位

# 寻找第二个元素
print(tuple_01[1])
# 前两个
print(tuple_01[:2])

## 遍历

for item in tuple_01:
    print(item)

## 在构建元组的时候,在没有歧义的情况下,可以省略小括号

tuple_03 = 10,20,30
print(tuple_03)

## 元组中如果只有一个元素,必须添加逗号

tuple_04 = ("李琦")
print(tuple_04)   # 不是元组
tuple_05 = ("李琦",)
print(tuple_05)   # 是元组

## 特别小心,下列代码是元组,不是字符串,因为有逗号

name = 10,
print(name)  # 变为元组

## 序列可拆包(字符串,列表,元组)

tuple_01 =("dd","ee","ff")
a,b,c = tuple_01
print(a,b,c)
list_01 = ["理理","红红"]
a,b=list_01
print(a,b)
a,b,c="孙悟空"
print(a,b,c)

# 变量交换
a = 10
b = 20
a,b=b,a  # 变量交换的实质是元组省略小括号

2、元组和列表的内存图

列表:预留空间,自动扩容

元组:按需分配,之后不可变

 练习:

我自己画图:

 四、容器思想

练习1:

"""
练习:
    在终端中输入月份,打印相应的天数.
    1 3 5 7 8 10 12 有 31天
    2 有 29天
    4 6 9 11 有 30天
    超过月份提示月份有误
    效果:
    请输入月份:10
    31天
"""
month = int(input("请输入月份:"))
if 0 < month <= 12:
    if month == 2:
        print("28天")
    elif month == 4 or month == 6 or month == 9 or month==11:
        print("30天")
    else:
        print("31天")
else:
    print("月份输入有误")

# 优化1
month = int(input("请输入月份:"))
if 0 < month <= 12:
    if month == 2:
        print("28天")
    elif month in (4 ,6 ,9 ,11):
        print("30天")
    else:
        print("31天")
else:
    print("月份输入有误")

# 优化2
tuple_month = (31,29,31,30,31,30,31,31,30,31,30,31)
month = int(input("请输入月份:"))
print(tuple_month[month-1])

 练习2:

# 练习2:
# 根据月日,计算是这一年的第几天.
# 公式:前几个月总天数 + 当月天数
# 例如:5月10日
# 计算:31 29 31 30 + 10

tuple_month = (31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
month = int(input("请输入月:"))
date= int(input("请输入日:"))
total_day = 0
for i in range(month-1):
    total_day += int(tuple_month[i])
print(total_day+date)

# 使用tuple_month[:2] 会触发浅拷贝

# 优化
total_day = sum(tuple_month[:month-1],date)
print(total_day)

homework

"""
    画出下列代码内存图
"""
list01 = [10, 20, 30]
for item in list01:
    item += 1
print(list01)  # ?

list02 = [
    [10],
    [20],
    [30],
]
for item in list02:
    item[0] += 1
print(list02)  # ?

我画的图:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/68413.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序(由浅到深)

文章目录 一. 项目基本配置1. 项目组成2. 常见的配置文件解析3. app.json全局的五大配置4.单个页面中的page配置5. App函数6.tabBar配置 二. 基本语法&#xff0c;事件&#xff0c;单位1. 语法2. 事件3. 单位 三. 数据响应式修改四 . 内置组件1. button2. image3. input4. 组件…

Android 13 Launcher——屏蔽长按非icon区域出现弹窗

目录 一.背景 二.屏蔽此功能 一.背景 长按Launcher非icon区域也是会有弹窗的&#xff0c;会显示小组件等信息&#xff0c;定制开发要求长按非icon区域不要弹窗&#xff0c;我们来实现此功能&#xff0c;先看下未修改前的长按非icon区域的效果 如上图可以看出长按功能显示出壁…

CSS:background 复合属性详解(用法 + 例子 + 效果)

目录 background 复合属性background-color 背景颜色&#xff08;纯&#xff09;background-image 背景图片 或者 渐变颜色background-repeat 背景是否重复background-size 设置图片大小background-position 设置背景图片显示位置background-attachment 设置背景图片是否随页面…

MNIST数据集知识合集

MNIST数据集知识合集 认识MNIST数据集通过本地文件加载MNIST数据集torchvision.datasets加载MNIST数据集可视化&#xff08;即转换成.jpg/.png之类的文件&#xff09;疑惑—datasets.mnist和datasets.MNIST问题—downloadFalse运行报错 搭建CNN用于数字识别 认识MNIST数据集 M…

# X11、Xlib、XFree86、Xorg、GTK、Qt、Gnome和KDE之间的关系

X11、Xlib、XFree86、Xorg、GTK、Qt、Gnome和KDE之间的关系 很多人对于他们是啥是傻傻分不清的&#xff0c;我做了个表格供大家参考。 摘抄&#xff1a; X11是X Window System Protocol, Version 11&#xff08;RFC1013&#xff09;&#xff0c;是X server和X client之间的通…

搭建一个自己的文档网站

目录 简介 快速上手 配置 首页 组件Demo案例 添加搜索 简介 有时候我们可能很好奇&#xff0c;像elementUi或者vue3他们的文档网站是怎么写的&#xff0c;其实写vue文档网站的技术&#xff0c;有两个&#xff1a;一个是vuePress&#xff0c;一个是vitePress。从名字上可…

心法利器[90-95] | 谈校招:合集

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会&#xff0c;与大家一起成长。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2022年新一版的文章合集已经发布&#xff0c;累计已经60w字了&#xff0c;获取方式看这里&…

React实现点击切换组件

实现如上组件 组件代码&#xff1a; import { SwapOutlined } from "ant-design/icons" import React, { useState } from "react" import ./index.lessinterface ISwitchTypeProps {onChange?: (val) > booleanactiveKey?: stringleft: { key: str…

Opencv实战(银行卡识别)

目录 模版匹配不同方法对比一个模板匹配多个 直方图及直方图均衡化Mask操作直方图均衡化自适应直方图均衡化 模版匹配 公式 import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %matplotlib inline def cv_show(img,nam…

云技术-混沌工程

目录 混沌工程 故障注入 监控和观测 自动化和持续集成 混沌工程 混沌工程&#xff08;Chaos Engineering&#xff09;是一种实验性的系统可靠性工程方法&#xff0c;主动引入故障和异常来测试系统的弹性和容错能力。混沌工程的核心思想是通过模拟故障场景来验证系统在各种异…

105. 从前序与中序遍历序列构造二叉树

题目描述 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,n…

2023年加湿器市场数据分析(天猫数据分析怎么做)

随着人们生活水平提高、空调广泛使用&#xff0c;导致皮肤紧绷、口舌干燥、咳嗽感冒等空调病的滋生。可以看出&#xff0c;空气湿度与人体健康以及日常生活有着密切的联系。而加湿器作为室内空气湿度控制的重要工具&#xff0c;在近年来受到了越来越多的重视。根据鲸参谋电商数…

linux鲁班猫代码初尝试[编译镜像][修改根文件系统重编译]

编译镜像 官方百度云盘资料:https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/baidu_cloud/baidu_cloud.html 解压虚拟机压缩包:"鲁班猫\8-SDK源码压缩包\开发环境虚拟机镜像\ubuntu20.04.7z"后既可以用VMware打开,打开后可以看到已经有…

nginx基于源码安装的方式对静态页面、虚拟主机(IP、端口、域名)和日志文件进行配置

一.静态页面 1.更改页面内容 2.更改配置文件 3.测试 二.虚拟主机配置 1.基于IP &#xff08;1&#xff09;在html目录下新建目录存放测试文件 &#xff08;2&#xff09;修改nginx.conf文件&#xff0c;在htttp模块中配置两个server模块分别对应两个IP &#xff08;3&am…

深入解析中国供应商API:关键字搜索接口对接与商品数据交互指南

随着电商行业的快速发展&#xff0c;越来越多的企业开始与中国供应商进行合作。而为了实现有效的数据交换和协作&#xff0c;接口对接成为了不可或缺的一环。本文将深入探讨中国供应商API&#xff0c;介绍如何高效地进行接口对接与数据交互&#xff0c;并提供实用的Python示例代…

【论文阅读】基于深度学习的时序预测——Informer

系列文章链接 论文一&#xff1a;2020 Informer&#xff1a;长序列数据预测 论文二&#xff1a;2021 Autoformer&#xff1a;长序列数据预测 文章地址&#xff1a;https://arxiv.org/abs/2012.07436 github地址&#xff1a;https://github.com/zhouhaoyi/Informer2020 参考解读…

【面试八股文】每日一题:谈谈你对异常的理解

每日一题-Java核心-谈谈你对异常的理解【面试八股文】 异常是程序在运行过程中出现的错误或不正常的情况。当程序执行过程中遇到无法处理的错误或者不符合预期的情况&#xff0c;就会抛出异常。异常可以分为两种类型&#xff1a;受检异常和非受检异常。 受检异常是指在程序编译…

【数据结构】链表(一)

链表&#xff08;一&#xff09; 文章目录 链表&#xff08;一&#xff09;01 引入02 概念及结构03 单向不带头不循环链表实现3.1 创建节点类型3.2 简易创建一个链表3.3 遍历链表每个节点3.4 获取链表长度3.5 查找是否包含关键字key是否在单链表当中3.6 头插法3.7 尾插法3.8 任…

国产数据库排行

目录 一、理论 1.国产数据库排行 2.数据 一、理论 1.国产数据库排行 &#xff08;1&#xff09;墨天轮榜单 墨天轮国产数据库流行度排行于2019年6月推出&#xff0c;通过近50个维度的数据来考察近300个国产数据库的流行度排行&#xff0c;每月1日更新排行数据&#xff0c…

layui的基本使用-日期控件的业务场景使用入门实战案例一

效果镇楼&#xff1b; 1 前端UI层面&#xff1b; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&…