python常见的数据类型与数据结构(一)数字类型 字符串类型 布尔类型 列表 集合 字典 的定义与常规操作方法

python常见的数据类型与数据结构(一)数字类型 字符串类型 布尔类型 列表 集合 字典 的定义与常规操作方法

  • 数据类型
    • 数字类型
    • 字符串类型
    • 布尔类型
  • 数据结构
    • 列表
    • 集合
    • 字典

数据类型

数字类型

  • 数字类型有int(整数),float(浮点数)和complex(复数型),其中int与float被大家所常用并且可以使用int()和float()函数相互转换。如果字符串只包含数字和小数点也可以被这两种函数强制转换。复数型,则少被人们使用,大都是用在数学公式和物理公式的计算上。

int_simple = 123456
float_simple = 123456.9
complex_simple = complex(123456,123456)
# 三种数据类型定义方法,float要加小数点
print(int_simple,float_simple,complex_simple)
# 输出为 123456 123456.9 (123456+123456j)
print(int(float_simple),float(int_simple))
# 可以使用int和float函数来进行强制转换,int会舍去全部小数,而不是四舍五入
# 输出为123456 123456.0
str_simple = "13246.123456"
str_simple1 = "2323"
print(int(str_simple1),float(str_simple))
# 如果字符串的格式正确,也可以使用int和float来进行转换
# 输出为 2323 13246.123456

字符串类型

  • 字符串类型较为简单,但不可修改,不过却可以向列表一样正常进行切片和逆序
part_2 = str(132)
part_1 = "123abc"
# 字符串定义方法
print(part_1,part_2)
# 输出为123abc 132
print(part_1[0],part_1[-1])
# 也可以像列表一样按位查找
print(part_1[::-1])
# 同样可以进行切片、逆序等操作
part_1[0] = "k"
# 字符串是一种不可修改的变量,只支持查看,并不能修改
# 会报错,并提示:TypeError: 'str' object does not support item assignment

布尔类型

  • 和c一样 有True和Flase,在判断时True等于1、Flase 等于0

数据结构

列表

  • 在Python中,列表(List)是一种非常基础且重要的数据结构,它可以包含一系列有序的元素,这些元素可以是不同类型的数据,如整数、浮点数、字符串,甚至是另一个列表。列表在Python中由方括号 [] 定义,元素之间用逗号 , 分隔。
  • 列表的定义
# 定义一个空列表  
empty_list = []  # 定义一个包含不同类型元素的列表  
mixed_list = [1, 2.3, "hello", True, [1, 2, 3]]  # 定义一个包含相同类型元素的列表  
number_list = [1, 2, 3, 4, 5]  # 列表也可以嵌套  
nested_list = [1, [2, 3], [4, [5, 6]]]
  • 列表的常规方法

  • Python列表提供了一系列方法来操作列表,包括添加、删除、修改和查询元素等。以下是一些常用的列表方法:

  • 添加元素

append(item): 在列表末尾添加元素。
insert(index, item): 在指定索引位置插入元素。
extend(iterable): 在列表末尾一次性添加另一个列表的所有元素。

  • 删除元素

remove(item): 删除列表中第一个匹配的元素。
pop(index): 删除指定索引位置的元素,并返回该元素。如果索引省略,则默认删除最后一个元素。
clear(): 清空列表中的所有元素。
del list[index]: 使用del语句删除指定索引位置的元素。

  • 修改元素

直接通过索引赋值来修改列表中的元素。

  • 查询元素

index(item): 返回列表中第一个匹配元素的索引,如果元素不存在则抛出异常。
count(item): 返回列表中匹配元素的个数。
in 和 not in: 检查元素是否存在于列表中。

  • 列表排序

sort(reverse=False): 对列表进行排序,reverse=True 可降序排序。
sorted(iterable, reverse=False): 返回一个新的已排序列表,原列表不变。

  • 其他方法

reverse(): 反转列表中的元素。
copy(): 复制列表。
list(iterable): 将可迭代对象转换为列表。

  • 切片操作

列表支持切片操作,可以获取列表的一个子集

# 获取索引1到3(不包括3)的元素  
sub_list = number_list[1:3]  # 结果为 [2, 3]
  • 列表推导式
    列表推导式也在日常被我们所使用
# 创建一个包含1到10的平方的列表  
squares = [x**2 for x in range(1, 11)]

集合

在Python中,集合(set)是一种无序且不包含重复元素的数据结构。它用于存储多个不重复的元素,并且集合的元素可以是任意类型。集合的定义通常使用大括号 {} 或者 set() 函数来创建。

  • 集合的定义
# 定义一个空集合  
empty_set = {}  # 定义一个包含多个元素的集合  
my_set = {1, 2, 3, 4, 5}  # 集合中的元素必须是不可变的,例如数字、字符串或元组  
another_set = {"apple", "banana", "cherry"}  # 使用set()函数定义一个空集合  
empty_set = set()  # 使用set()函数定义一个包含多个元素的集合  
my_set = set([1, 2, 2, 3, 4, 4, 4])  # 重复的元素会被自动去除  # 转换其他可迭代对象为集合  
list_to_set = set([1, 2, 3])  
tuple_to_set = set((1, 2, 3))  
String_to_set = set("hello")  # 字符串的每个字符都将作为集合的元素
  • 集合的常规方法
    集合提供了一系列方法来操作集合元素,包括添加、删除、交集、并集等。以下是一些常用的集合方法:

  • 添加元素

add(element): 添加单个元素到集合中。
update(iterable): 添加多个元素到集合中,参数可以是另一个集合或者任何可迭代对象。

  • 删除元素
    remove(element): 移除集合中的一个元素,如果元素不存在则抛出异常。
    discard(element): 移除集合中的一个元素,如果元素不存在则什么也不做。
    pop(): 随机移除并返回一个集合中的元素,如果集合为空则抛出异常。
    clear(): 清空集合中的所有元素。

  • 查询元素

in 和 not in: 检查元素是否存在于集合中。

  • 集合运算

union(other, …): 返回两个或多个集合的并集。
intersection(other, …): 返回两个或多个集合的交集。
difference(other, …): 返回集合的差集,即存在于当前集合但不在其他集合中的元素。
symmetric_difference(other): 返回两个集合的对称差集,即存在于其中一个集合但不同时存在于两个集合中的元素。

  • 集合比较

issubset(other): 检查当前集合是否是另一个集合的子集。
issuperset(other): 检查当前集合是否是另一个集合的超集。
==, !=: 比较两个集合是否相等或不相等。

  • 集合的其他方法

len(s): 返回集合中元素的个数。
frozenset(s): 返回一个冻结集合,冻结集合不能被修改。

字典

  • 字典
    rep= {'I': 1,"V": 5,'X': 10,'L': 50,'C': 100,'D': 500,'M': 1000,'a': 4,'b': 9,'c': 40,'d': 90,'e': 400,'f': 900}
  • 在Python中,字典(dictionary)是一种无序的、可变的数据结构,用于存储键值对(key-value pairs)。每个键都是唯一的,并且与一个值相关联。字典由大括号 {} 定义,键和值之间用冒号 : 分隔,不同的键值对之间用逗号 , 分隔。

  • 字典的定义
    定义一个字典非常简单,只需要将键值对放在大括号内即可。

# 定义一个空字典  
empty_dict = {}  # 定义一个包含多个键值对的字典  
my_dict = {  'name': 'Alice',  'age': 30,  'city': 'New York'  
}  # 字典的键通常是不可变类型(如字符串、数字、元组),而值可以是任意类型  
another_dict = {  1: 'first',  2: 'second',  (3, 4): 'tuple as a key'  
}
  • 字典的常规方法
    字典提供了一系列内置方法来操作其内容,如添加、删除、修改和查询键值对等。以下是一些常用的字典方法:

  • 添加键值对

[key] = value: 直接通过键赋值来添加或修改键值对。
update(dict2): 使用另一个字典 dict2 的键值对来更新当前字典。
setdefault(key, default_value): 如果键存在,则返回其值;如果键不存在,则添加该键及其对应的默认值。

  • 删除键值对

del dict[key]: 删除字典中键为 key 的键值对。
pop(key, default_value): 删除并返回字典中键为 key 的值;如果键不存在,则返回 default_value(可选参数)。
clear(): 清空字典中的所有键值对。

  • 查询键值对

get(key, default_value): 返回字典中键为 key 的值;如果键不存在,则返回 default_value(可选参数)。
keys(): 返回一个包含字典所有键的视图。
values(): 返回一个包含字典所有值的视图。
items(): 返回一个包含字典所有键值对的视图。

  • 判断键值对的存在

in 和 not in: 检查某个键是否存在于字典中。

  • 字典的其他方法

len(dict): 返回字典中键值对的数量。
copy(): 返回字典的一个浅拷贝。

# 创建一个字典  
my_dict = {  'name': 'Alice',  'age': 30  
}  # 添加键值对  
my_dict['city'] = 'New York'  
my_dict.update({'occupation': 'Engineer'})  # 获取值  
name = my_dict['name']  
age = my_dict.get('age', 'Not provided')  # 删除键值对  
del my_dict['age']  
my_dict.pop('city', None)  # 判断键是否存在  
if 'occupation' in my_dict:  print("Occupation is in the dictionary.")  # 遍历字典  
for key, value in my_dict.items():  print(f"{key}: {value}")  # 获取字典的长度  
length = len(my_dict)  # 复制字典  
copied_dict = my_dict.copy()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

异步任务超时机制

目录 1、Thread.Join(timeout) 2、Task.WhenAny(task,Task.Delay(timeout)) 3、WaitAsync(timeout) 需主动取消 4、CancellationTokenSource(timeout) 1、Thread.Join(timeout) var thread new Thread(() > {try {Console.WriteLine("Foo start...");Thread…

vue 使用docx库生成word表格文档

在Vue.js中生成Word表格文档,可以通过前端库来实现。这些库可以帮助我们轻松地将HTML表格转换为Word文档(通常是.docx格式)。以下是一些流行的前端库,它们可以用于在Vue项目中生成Word表格文档: docx…

保险购买的渠道

买保险的渠道 1.代理人。这个是保险公司传统的渠道,代理人的队伍非常庞大,许多人都碰到过保险代理人。 保险代理人的优势是"线下""1对1",业务员如果非常专业,就能够给我们提供非常好的体验。由于大多数人接…

跨境电商无货源如何实现自动化对接1688货源商品上架?1688商品采集API来帮你

阿里巴巴集团旗下的B2B电子商务网站,提供海量优质商品,为采购商和供应商提供交流、合作、采购等服务,是很多没有货源优势的电商卖家首选的货源途径,也是国内最大、货源种类最齐全的货源网站。 不少做跨境电商无货源的朋友都想要直…

优思学院|精益思想如何识别价值流?【案例分析】

精益思想是一种为了提高效率、减少浪费的管理哲学,精益思想强调在整个生产过程中识别并消除一切不创造价值的步骤。 价值流分析是精益思想中的一个核心概念,通过深入分析特定产品从原材料到最终交付给顾客的全过程,来识别并削减浪费&#xf…

Win11专业版安装集成了谷歌框架的安卓子系统,包含谷歌商店

1.摘要 上一篇博客讲述了使用微软商店安装安卓子系统的教程 https://blog.csdn.net/RudeTomatoes/article/details/135958882 上述方法的优点是安装过程简单,但是,由于Windows安卓子系统是微软与亚马逊联合开发,默认没有安装谷歌框架。我尝试…

实现一个Windows环境一键启停Oracle的bat脚本

Oracle数据库有许多优点,其中一些最重要的包括: 可靠性和稳定性: Oracle数据库经过长期的发展和测试,被广泛认为是非常可靠和稳定的数据库管理系统。它在大型企业和关键业务环境中被广泛应用,能够处理高负载和大规模的数据。 高性能: Oracle数据库具有优化的查询处理器和…

Pytorch框架-----torch.tensor(创建张量)

文章目录 前言一、torch.Tensor二、构建tensor1.从Python的list或序列构建2.空张量3.索引和切片来获取和修改一个张量tensor中的内容 前言 torch.Tensor 是包的核心类。如果将其属性 .requires_grad 设置为 True,则会开始跟踪针对 tensor的所有操作。完成计算后&am…

线程相关整理

一 常用的线程手段 1 synchronized 有方法,和方法块,新的java版本 内部实现已经包含了多种方案,并动态调整方案,因此不是特别需求的化,建议直接用此方式 2 reentrantlock 可以构造公平锁 以上两种 代码片段应该是没得选…

开箱即用之 redis键值失效通知后端进行业务操作

引入redis依赖 <!--Spring boot Redis--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>配置类编写 import com.alibaba.fastjson.support.sp…

蓝牙攻击工具集合与使用说明

bluez - 蓝牙协议栈&#xff0c;提供了蓝牙设备管理和通信的基本功能。btscanner - 用于发现和扫描蓝牙设备的工具。bluetoothctl - 蓝牙控制终端工具&#xff0c;用于管理蓝牙设备和进行配对等操作。spooftooph - 用于欺骗和伪造蓝牙设备的MAC地址的工具。ubertooth - 用于无线…

设计模式一:单例模式

1、单例模式的实现方式 /*** 1、饿汉模式*/ public class Singleton1 {private static AtomicInteger count new AtomicInteger(0);private static final Singleton1 instance new Singleton1();public static Singleton1 getInstance(){return instance;} }/*** 2、懒汉模式…

学习总结19

# 奶牛的耳语 ## 题目描述 在你的养牛场&#xff0c;所有的奶牛都养在一排呈直线的牛栏中。一共有 n 头奶牛&#xff0c;其中第 i 头牛在直线上所处的位置可以用一个整数坐标 pi(0< pi < 10^8) 来表示。在无聊的日子里&#xff0c;奶牛们常常在自己的牛栏里与其它奶牛交…

设计模式-面试题

一、实际应用 项目中使用到的设计模式 模板方法模式、工厂方法模式、外观模式、建造者模式Spring中使用到的设计模式 代理模式、单例模式、观察者模式二、设计模式分类 设计模式(Design Pattern)是一套被反复使用、代码设计经验的总结。使用设计模式是为了可重用代码、让代码…

vue3项目配置按需自动导入API组件unplugin-auto-import

场景应用&#xff1a;避免写一大堆的import&#xff0c;比如关于Vue和Vue Router的 1、安装unplugin-auto-import npm i -D unplugin-auto-import 2、配置vite.config import AutoImport from unplugin-auto-import/vite//按需自动加载API插件 AutoImport({ imports: ["…

c++学习记录 普通函数与函数模板调用规则

普通函数与函数模板调用规则 如果函数模板和普通函数都可以调用&#xff0c;优先调用普通函数可以通过空模板参数列表 强制调用函数模板函数模板可以发生函数重载如果函数模板可以产生更好的匹配&#xff0c;优先调用函数模板 #include<iostream> using namespace std;…

Python学习-用Python设计第一个游戏

三、用Python设计第一个游戏 1、新建文件 使用IDLE的编辑器模式&#xff0c;新建一个文件&#xff0c;点击File—>New File 2、将下面的游戏代码敲入进去 """用Python设计第一个游戏"""temp input("不妨猜一下小甲鱼现在心里想的是…

微软和OpenAI将检查AI聊天记录,以寻找恶意账户

据国外媒体报道&#xff0c;大型科技公司及其附属的网络安全、人工智能产品很可能会推出类似的安全研究&#xff0c;尽管这会引起用户极度地隐私担忧。大型语言模型被要求提供情报机构信息&#xff0c;并用于帮助修复脚本错误和开发代码以侵入系统&#xff0c;这将很可能会成为…

Vue的个人笔记

Vue学习小tips ctrl s ----> 运行 alt b <scrip> 链接 <script src"https://cdn.jsdelivr.net/npm/vue2.7.16/dist/vue.js"></script> 插值表达式 指令

提升生产3D渲染效率与品质:挖掘渲染农场的潜力

在当今数字化时代&#xff0c;3D渲染已成为跨越多个领域不可缺少的技术&#xff0c;无论是在建筑视觉化、电影制作、互动媒体还是虚拟现实领域。随着对动态、逼真视觉效果的需求不断增长&#xff0c;3D渲染农场因其出色的运算能力和经济性成为行业中的关键解决方案。本篇文章旨…