Python 引用数据类型

列表List

定义列表

可以将不同的基本数据类型或者列表装到一个列表里

my_list = [1,2,3,4,5]
print(my_list) # [1, 2, 3, 4, 5] 直接打印出列表的内容
print(type(my_list)) # <class 'list'>

my_list = ["1","2","3","4","5"]
print(my_list)


my_list = [1,2,"3",4,5] 
print(my_list)
my_list = [1,2,"3",4.1,True]
print(my_list)

my_list = [1,["a","b"],"3",4.1,True]
print(my_list)

角标访问列表元素

my_list = ["a","qwe","c","d","e"]
print(my_list)
print(my_list[1])
print(type(my_list[1])) # <class 'str'>
print(my_list[1][0]) # q

访问列表中的某一个区间的所有元素

my_list = ["a","b","c","d","e"]
print(my_list)
# 如果我想访问列表中的某一个区间的所有元素
print(my_list[:])


# 从最开始的位置打印到第二个位置
# 但不包含第二个位置
# 大部分情况下都是左闭右开的原则
print(my_list[:2]) # ['a', 'b']
print(my_list[1:3]) # ['b', 'c']
my_list = ["a","b","c","d","e"]

# 访问最后一个就从-1开始
print(my_list[-1]) # 结果是e
print(my_list[-4]) # 结果是b

# 我们在访问列表的时候[]里边写的都是从左往右数的
print(my_list[-1:-3])  # 结果是[]
print(my_list[-4:-2])  # 结果是['b', 'c']

修改列表中的元素

列表元素的增加

my_list = ["a","b","c","d","e"]
print(my_list) # ['a', 'b', 'c', 'd', 'e']
my_list.append("f") 
print(my_list) # ['a', 'b', 'c', 'd', 'e', 'f']

列表元素值的修改,更新

my_list = ["a","b","c","d","e"]
print(my_list) # ['a', 'b', 'c', 'd', 'e']


# 你要更新哪一个数据,必须先能访问到这个数据
my_list[2] = "G"
print(my_list) # ['a', 'b', 'G', 'd', 'e']

列表元素值的删除

my_list = ["a","b","c","d","e"]
print(my_list) # ['a', 'b', 'c', 'd', 'e']

# 1、根据值删除
my_list.remove("d")
print(my_list) # ['a', 'b', 'c', 'e']

# 2、根据索引来删除
my_list.pop(1)
print(my_list) # ['a', 'c', 'e']

使用 for 循环遍历 List

for i in my_list:
    if i == "b":
        continue
    if i == "d":
        break
    print(i) 

# 执行顺序为: 
    # 循环到 a 不符合上面条件,打印 a
    # 循环到 b 符合上面第一个条件,结束此次循环 不打印b
    # 循环到 c 不符合上面条件,打印 c
    # 循环到 d 符合上面第二个条件,结束整个 for 循环 不打印d 程序结束

使用 while 循环遍历 List

my_list = ["a","b","c","d","e"]

l = len(my_list) # 打印list的长度,结果为 5 
print(l)

i = 0
while True:
    print(my_list[i])
    i+=1
    if i == l:
        break

print(len("aaaa")) # 打印字符串的长度,结果为 4

练习:魔法读心术程序

假设:你想的数字出现在 A,D,E 这三张卡片上,这时候,我们只需要将这三张卡片的第一个数字相加,也就是1+8+16=25,那么你想的数字就是 25。

A = [1, 9, 17, 25, 33, 41, 49, 57,
     3, 11, 19, 27, 35, 43, 51, 59,
     5, 13, 21, 29, 37, 45, 53, 61,
     7, 15, 23, 31, 39, 47, 55, 63]
B = [2, 10, 18, 26, 34, 42, 50, 58,
     3, 11, 19, 27, 35, 43, 51, 59,
     6, 14, 22, 30, 38, 46, 54, 62,
     7, 15, 23, 31, 39, 47, 55, 63]
C = [4, 12, 20, 28, 36, 44, 52, 60,
     5, 13, 21, 29, 37, 45, 53, 61,
     6, 14, 22, 30, 38, 46, 54, 62,
     7, 15, 23, 31, 39, 47, 55, 63]
D = [8, 12, 24, 28, 40, 44, 56, 60,
     9, 13, 25, 29, 41, 45, 57, 61,
     10, 14, 26, 30, 42, 46, 58, 62,
     11, 15, 27, 31, 43, 47, 59, 63]
E = [16, 20, 24, 28, 48, 52, 56, 60,
     17, 21, 25, 29, 49, 53, 57, 61,
     18, 22, 26, 30, 50, 54, 58, 62,
     19, 23, 27, 31, 51, 55, 59, 63]
F = [32, 36, 40, 44, 48, 52, 56, 60,
     33, 37, 41, 45, 49, 53, 57, 61,
     34, 38, 42, 46, 50, 54, 58, 62,
     35, 39, 43, 47, 51, 55, 59, 63]
# 魔法读心术
A = [1, 9, 17, 25, 33, 41, 49, 57,
     3, 11, 19, 27, 35, 43, 51, 59,
     5, 13, 21, 29, 37, 45, 53, 61,
     7, 15, 23, 31, 39, 47, 55, 63]
B = [2, 10, 18, 26, 34, 42, 50, 58,
     3, 11, 19, 27, 35, 43, 51, 59,
     6, 14, 22, 30, 38, 46, 54, 62,
     7, 15, 23, 31, 39, 47, 55, 63]
C = [4, 12, 20, 28, 36, 44, 52, 60,
     5, 13, 21, 29, 37, 45, 53, 61,
     6, 14, 22, 30, 38, 46, 54, 62,
     7, 15, 23, 31, 39, 47, 55, 63]
D = [8, 12, 24, 28, 40, 44, 56, 60,
     9, 13, 25, 29, 41, 45, 57, 61,
     10, 14, 26, 30, 42, 46, 58, 62,
     11, 15, 27, 31, 43, 47, 59, 63]
E = [16, 20, 24, 28, 48, 52, 56, 60,
     17, 21, 25, 29, 49, 53, 57, 61,
     18, 22, 26, 30, 50, 54, 58, 62,
     19, 23, 27, 31, 51, 55, 59, 63]
F = [32, 36, 40, 44, 48, 52, 56, 60,
     33, 37, 41, 45, 49, 53, 57, 61,
     34, 38, 42, 46, 50, 54, 58, 62,
     35, 39, 43, 47, 51, 55, 59, 63]

# 返回时cards是一个字符串
cards = input("请告诉我你想的数字都位于哪些卡片上,多张卡片使用\",\"进行分隔哦,不要撒谎哦!!>>")
# split是分割字符串的一个操作方法, # 它的返回值就是一个list
# 记录用户输入的卡片
cards_number_list = []

card_list = cards.split(",")
for card in card_list:
    # upper()可以将所有字母变成大写字母
    # lower()可以将所有的字母变成小写字母
    upper_char = card.upper()
    if upper_char == "A":
        cards_number_list.append(A[0])
    elif upper_char == "B":
        cards_number_list.append(B[0])
    elif upper_char == "C":
        cards_number_list.append(C[0])
    elif upper_char == "D":
        cards_number_list.append(D[0])
    elif upper_char == "E":
        cards_number_list.append(E[0])
    elif upper_char == "F":
        cards_number_list.append(F[0])
    
# 计算所有数字的和
your_number = 0
for number in cards_number_list:
    your_number += number
print("你想的数字是{}".format(your_number))

元组

列表和元组在声明时的区别是,列表使用[]进行声明,元组使用()进行声明

在访问时没有区别

列表是可以进行增加、删除和修改的操作的,但是元组不支持。

元组比列表占用的资源更小。

元组声明

t = (1,2,3,4,5)
print(t) # (1, 2, 3, 4, 5)
print(type(t)) # <class 'tuple'>

元组访问

t = (1,2,3,4,5)

for i in t:
    print(i)
print(t[1])  # 2
print(t[-1]) # 5

元祖不支持操作(CRUD)

t = (1,2,3,4,5)

# 以下操作会报错:元组不支持这些操作
t.append(6)
t[1] = 6
t.remove(2)
t.pop(1)

字典—存储键值对的容器

字典的声明

字典的键可以是整数、字符串(其实也可以是任意类型,但是这样使用 boolean 和 double 这些类型一般不这么用,这样会非常不具阅读性,容易出错)

字典的值可以是任意数据类型

d = {
    "a":"a-value",
    "b":"b-value",
    "c":[1,2,3],
    "d":True,
    "e": 2.3
}
print(d) # {'a': 'a-value', 'b': 'b-value'},打印的结果跟声明的字典是一模一样的
print(type(d)) # <class 'dict'>

字典的访问

d = {
    "a":"a-value",
    "b":"b-value",
    1: 11
}

# print(d[0]) # 不能这么访问字典
print(d["a"])  # a-value
print(d[1]) # 11

单独访问字典所有的键和一次性访问字典所有的值

d = {
    "a":"a-value",
    "b":"b-value",
    "c":[1,2,3],
    "d":True,
    "e": 2.3
}

print(d.keys()) 
print(d.values())

# 在对象调用的时候,方法加括号,属性不加括号

字典增删改查(CRUD)

如果我们想要向字典中添加元素该怎么操作

my_dict = {
    1:"a",
    2:"b",
    3:"c",
    4:"d"
}

# 如果我们想要向字典中添加元素该怎么操作
dict1 = {
    "e":5
}
my_dict.update(dict1)
print(my_dict)
my_dict = {
    1:"a",
    2:"b",
    3:"c",
    4:"d",
}
my_dict[5] = "ttttt"
print(my_dict) # {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'ttttt'}

更新元素,先找到这个元素,然后再对值进行更新

my_dict = {
    1:"a",
    2:"b",
    3:"c",
    4:"d"
}

my_dict[1] = "aaaaa"
print(my_dict) # {1: 'aaaaa', 2: 'b', 3: 'c', 4: 'd'}

当我们字典中存在相同键的时候,前边的值会被覆盖,就是说有一个默认的规则,字典中不可以存在相同的键

my_dict = {
    1:"a",
    2:"b",
    3:"c",
    4:"d",
    1:"dd"
}
print(my_dict) # {1: 'dd', 2: 'b', 3: 'c', 4: 'd'},键 1 的值被最后一个 dd 值覆盖了

我们是否可以根据值更新键,我们不可以根据值来对键进行更新

字典的删除操作

my_dict = {
    1:"a",
    2:"b",
    3:"c",
    4:"d",
    1:"dd"
}


# 字典的删除操作
my_dict.pop(2)
print(my_dict)  # {1: 'dd', 3: 'c', 4: 'd'} 删除掉了键为 2 的

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

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

相关文章

CV Method:超全学习率策略总结

文章目录 前言一、LambdaLR二、StepLR三、MultiStepLR四、ConstantLR五、LinearLR六、PolynomialLR七、ChainedScheduler八、ExponentialLR九、CosineAnnealingLR十、OneCycleLR十一、ReduceLROnPlateau十二、自定义学习率类函数总结 前言 在深度学习中&#xff0c;学习率对模…

数据分析工具|数据分析利器与业务决策的好帮手vividiem Desktop

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 &#x1f525; 三连支持&#xff1a;欢迎 ❤️关注…

如何修复d3dcompiler43.dll丢失问题,这三种方法可轻松解决

在计算机使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“计算机缺失d3dcompiler43.dll”。这个问题可能会影响到计算机的正常运行&#xff0c;让我们无法正常使用某些软件或者游戏。那么&#xff0c;究竟什么是d3dcompiler43.dll&#xff1f;为什…

nginx: [error] invalid PID number ““ in “/run/nginx.pid“

两种问题&#xff0c;我自己碰到的情况 ./nginx -s reload执行命令后报错 nginx: [error] invalid PID number ““ in “/run/nginx.pid“ 第一种情况&#xff0c;pid被注释了 /usr/local/nginx/conf/nginx.conf #user nobody; worker_processes 1;// 可能是这里被注释了…

小海外仓也能用得起的大型海外仓系统:高性价比模式是关键

高效的仓储管理、订单处理效率、标准化财务管理&#xff0c;这些集成在海外仓系统的功能&#xff0c;在以往都是大型海外仓才投资得起的工具。 不过实际情况是&#xff0c;这些标准化的管理模式&#xff0c;恰恰是资金有限的小型海外仓最需要的。为了解决这个问题&#xff0c;…

基于JSP技术的社区生活超市管理系统

你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;MyEclipse开发环境、Tomcat服务器 系统展示 首页 管理员功能模块…

“墨者杯”网络安全大赛wp

漏洞利用01 504错误修改为POST提交拿到php源码&#xff0c; 查看逻辑$_POST[roam1] ! $_POST[roam2] && sha1($_POST[roam1]) sha1($_POST[roam2]) 采用数组绕过 roam1[]1&roam2[]2 拿到phpinfo&#xff0c;观察发现 这里的意思是每个php页面都包含这个f14…

微信小程序实现图片预览功能

需求&#xff1a;点击图片实现放大预览 实现&#xff1a;调用微信官方给出的方法 wx.previewImage 注&#xff1a;urls 必须是数组 <image src"{{imgUrl}}" data-src"{{imgUrl}}" bindtap"previewImage" />data: {imgUrl:https://img.yz…

如何永久擦除Android手机中的所有个人数据?

在这个数字化的时代&#xff0c;确保您的个人数据的安全和隐私至关重要。如果您计划出售或回收您的Android手机&#xff0c;了解如何正确擦除Android手机是至关重要的。本综合指南将引导您通过安全擦除Android手机的分步过程&#xff0c;以保护您的敏感信息。 手机是极其敏感的…

怎么将图片里不需要的地方裁减掉?四种超好用的裁剪图片方法!

怎么将图片里不需要的地方裁减掉&#xff1f;在这个数字化时代&#xff0c;我们所处的世界变得更加多姿多彩&#xff0c;各种类型的图片不断涌现&#xff0c;从社交媒体上的自拍照到专业摄影师的作品&#xff0c;图片已经成为我们日常生活中不可或缺的一部分&#xff0c;然而&a…

Golang发送邮件如何验证身份?有哪些限制?

Golang发送邮件需要哪些库&#xff1f;怎么设置邮件发送的参数&#xff1f; 对于开发者而言&#xff0c;使用Golang发送邮件是一种常见需求。然而&#xff0c;在发送邮件的过程中&#xff0c;验证身份是一个至关重要的环节&#xff0c;它确保了邮件的可靠性和安全性。A将探讨G…

正则表达式运用

已经写了表达式&#xff0c;下一步就是匹配字符串得到结果 使用matcher的源码&#xff08;匹配&#xff09;普通方法&#xff0c;find&#xff08;寻找&#xff09;合适的代码&#xff0c;看字符串是否匹配成功 是否可以匹配上 匹配么&#xff0c;匹配就留下&#xff0c;fin…

WTLRC262-SG1模组LoRa与Wi-Fi技术助力智能化,启明云端乐鑫代理商

在物联网高速发展的今天&#xff0c;Wi-Fi 和LoRa作为近距离和远距离通信技术&#xff0c;均有其各自的典型应用场景&#xff0c;在各自应用领域都取得了卓越的成就。 Wi-Fi和LoRa技术各具优势&#xff0c;在很多场景需求中&#xff0c;如果将两者结合&#xff0c;一方面可以发…

六月可以闭眼入的宠物空气净化器:希喂、安德迈、霍尼韦尔真实PK

俗话说得好&#xff0c;猫咪一年到头都在掉毛&#xff0c;仿佛它们是四季常在的"蒲公英"&#xff0c;随时随地都在播撒毛发。猫毛不仅遍布它们自己的身体&#xff0c;还可能飘到你的床铺、沙发、衣物上……面对这样的状况&#xff0c;既要应对无处不在的猫毛&#xf…

【打印功能】js简单实现表格样式的数据打印,按样式打印出来

效果图 代码部分&#xff0c;简单三步 1&#xff0c;html部分&#xff1a;写一个表格&#xff0c;然后数据填进去 <div id"printable-area" v-show"false"><div><div style"text-align: center;height: 40px;line-height: 40px;font…

XENDOLL小型激光雕刻机能让你的产品更多选择

小型雕刻机是一种在小型尺寸范围内进行精细雕刻和切割的机械设备。它广泛应用于各种材料上的图案、文字、标识等雕刻工作&#xff0c;特别是在教学、工艺品制作、广告制作、模型制作等领域中发挥着重要作用。 激光雕刻机凭借其高精度、高效率和非接触式的加工特性&#xff0c;能…

electron自定义顶部

我的项目是采用的electron-vite搭建的,希望下面的内容可以给你带来帮助 自定义菜单栏Vue <template><div class"title-bar"><div class"left-section"><img src"../assets/icon.png" alt"Icon" class"icon…

电流继电器JL-31 柜内固定安装 约瑟JOSEF

JL系列电流继电器型号&#xff1a; 电流继电器JL-31 电流继电器JL-31C/1 电流继电器JL-31A 电流继电器JL-31/B 电流继电器JL-32BP 电流继电器JL-22 电流继电器JL-21 电流继电器JL-21B 电流继电器JL-23 电流继电器JL-11 电流继电器JL-11/2G 电流继电器JL-11C 电流继电器J…

RK3288 android7.1 实现ota升级时清除用户数据

一&#xff0c;OTA简介(整包&#xff0c;差分包) OTA全称为Over-The-Air technology(空中下载技术)&#xff0c;通过移动通信的接口实现对软件进行远程管理。 1. 用途&#xff1a; OTA两种类型最大的区别莫过于他们的”出发点“&#xff08;我们对两种不同升级包的创建&…

C#——枚举类型详情

枚举类型 枚举类型&#xff08;也可以称为“枚举器”&#xff09;由一组具有独立标识符&#xff08;名称&#xff09;的整数类型常量构成&#xff0c;在 C# 中枚举类型不仅可以在类或结构体的内部声明&#xff0c;也可以在类或结构体的外部声明&#xff0c;默认情况下枚举类型…