【python | linux02】元组和字典你真的懂了吗?字典和列表你真的分清了么?

简介: ​Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组和字符串都是不可变序列.字典是用键值对的方式存储多个数据,获取元素用key的方式获取,值无特殊顺序,列表是通过下标获取,有顺序............

 🍁作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道TOP1🏅 阿里云ACE认证高级工程师🏅

✒️个人主页:小鹏linux

💊个人社区:小鹏linux(个人社区)欢迎您的加入!

目录

1.元组

1.1 元组定义:

1.1.1 语法

1.1.2 访问元组

1.1.3 修改元组

1.2 tuple函数

1.3 元组的优点

2.字典

2.1 字典定义 :键值对(key:value)

2.2 字典访问

2.3 字典和列表的区别

2.4 字典的增删改查

2.4.1 添加、修改元素

2.4.2 删除元素

2.4.3 查找 元素

2.4.4 字典的键值操作

2.4.5 字典 遍历

2.4.6 遍历列表引入


1.元组

1.1 元组定义:

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组和字符串都是不可变序列.

1.1.1 语法

定义元组语法 ( ) 和 ,

In [1]: a= 1,2,3

In [2]: a

Out[2]: (1,2,3)

In [3]: type(a)

Out[3]:tuple

In [4]: b=(1,2,3)

In [5]: b

Out[6]: (1, 2, 3)

In [7]: type(b)

Out[7]:tuple

In [8]: a= ()

In [9]: type(a)

Out[10]: a

In [11]: ( )

Out[11]:tuple

In [12]: a= (2)

In [13]: a

Out[13]: 2

In [14]: type(a)

Out[14]:int

In [15]: a= (2,)

In [16]: a

Out[16]: (2,)

In [17]: type(a)

Out[17]:tuple

In [18]: a= 2

In [19]: a

Out[19]: 2

In [20]: a=2,

Out[20]: (2,)

可存放的数据类型:数字(整型)、字符串、元组嵌套类型、元组嵌套列表、元组嵌套字典

1.1.2 访问元组

和列表一样

In [21]: a= (11,22,33,11,22,11,11)

In [22]: a[2]

Out[22]: 33

In [23]: b.count(11)

Out[23]:4

In [24]: b.index(33)

Out[24]: 2

1.1.3 修改元组

Python 中不允许修改元组的数据,包括不能删除其中的元素。元组是不可变的,也就是说,元组中的元素在被赋值后不能改变。但是,如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变
In [25]: name= [‘小鹏’,’凉凉’,’卷妹’,’吕布’,’貂蝉’,’黑客’,’魏延’]
In [26]: atuple=tuple(names)
In [27]:atuple
Out[27]: (‘小鹏’,’凉凉’,’卷妹’,’吕布’,’貂蝉’,’黑客’,’魏延’)
In [28]: alist=list(atuple)
In [29]: alist
Out[29]: [‘小鹏’,’凉凉’,’卷妹’,’吕布’,’貂蝉’,’黑客’,’魏延’]

image.gif

1.2 tuple函数

tuple函数的功能与list函数基本上一样的,以一个序列作为参数并把它转换为元组,如果参数是元组,那么该参数就会被原样返回。

 多维列表/元祖访问 a[ ][ ]

In [30]: chool_names = (('北京大学', '清华大学'),('南开大学', 'CSDN大学'),('贵州大学', '青海大学'))
In [31]: chool_names[1][1]
Out[32]: ‘CSDN大学’

image.gif

1.3 元组的优点

与列表相比,元组的优点:

通常将元组用于不同的数据类型,将列表用于相同(或相似)的数据类型。

由于元组不可变,所以遍历元组比列表要快(较小的性能提升)。

元组可以用作字典的Key,而列表不行。因为字典的Key 必须是不可变的,元组本身就是不可变的。

如果数据不需要更改,将其作为元组来实现,可以确保“写保护”

2.字典

2.1 字典定义 :键值对(key:value)

变量student为字典类型:

student= {'name':' 小鹏', 'id':100, 'sex':' 男', 'address':' 中国’}

2.2 字典访问

In [2]: student['name']

Out[2]: '小鹏'

In [3]: student['adress']

----------------------------------------------------------------------

KeyError                          Traceback (most recent call last)

<ipython-input-3-c1a4f755140b> in <module>

----> 1 student['adress']

KeyError: 'adress'

访问不存在的键则会报错,解决方法:get()

使用 get(‘key’) 不存在不会报错,而且可以设置默认值

In [4]: student.get("address")

image.gif

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值.

In [5]: student.get("id")
Out[5]: 100
In [6]: student.get("id",19)
Out[6]: 19

image.gif

2.3 字典和列表的区别

字典是用键值对的方式存储多个数据,获取元素用key的方式获取,值无特殊顺序

列表是通过下标获取,有顺序

2.4 字典的增删改查

2.4.1 添加、修改元素

字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改
student = {"name":"小鹏","id":100,"sex":"男"}
print("修改前的内容:",student)
student["id"] = 30
print("修改之后:",student)

image.gif

如果在使用 变量名['键'] = 数据 时,这个“键(key)”在字典中不存在,那么就会新增这个元素
student = {"name":"小鹏","id":100,"sex":"男"}
print("增加前的内容:",student)
student["local"] = "北京"
print("增加之后:",student)

image.gif

增加前的内容: {'name': '小鹏', 'id': 100, 'sex': '男'}

增加之后: {'name': '小鹏', 'id': 100, 'sex': '男', 'local': '北京'}

2.4.2 删除元素

对字典进行删除操作,有一下几种

1.

 del删除指定的元素

student = {"name":"小鹏","id":100,"sex":"男"}

del student["id"]

print(student)

2.

del删除整个字典

del student

print(student)

3.

clear清空整个字典

student.clear()

print(student)

4.

pop删除字典指定元素并且得到值

result = student.pop("name")

print(student)

print(result)

5.

popitem随机返回并删除字典中的一对键和值(项)(字典没有顺序所以是随机,实际是从后往前删)

a,b = student.popitem()

print(student)

print(a,b)

2.4.3 查找 元素

info = {"name":"小鹏","id":100,"sex":"男","age":30}

1.普通获取数据方式

简写

print(info["name"])

print(info.get("name","无名"))

完整

name = info["name"]

print(" 使用[key]=",name)

name = info.get("name")

print(" 使用get(key) 查找=",name)

2.通过Key查找数据           #info和info.keys效果是一样的(只不过info隐藏了)

if "name" in info:

    print("使用in根据key从字典中查找name是存在的。")

if "name" in info.keys():

    print("使用in根据key从字典中的info.keys()查找name是存在的")

3.通过Value获取值

if "小鹏" in info.values():

    print("使用in根据'值'从字典中查找info.values()小鹏是存在的。")

2.4.4 字典的键值操作

len () 测量字典中,键值对的个数

In [1]: info = {"name":"小鹏","id":100,"sex":"男","age":30}

In [2]: len(info)

Out[2]: 4

keys 返回一个包含字典所有 KEY 的列表

In [3]: info.keys()

Out[3]: dict_keys(['name', 'id', 'sex', 'age'])

values 返回一个包含字典所有 value 的列表

In [4]: info.values()

Out[4]: dict_values(['小鹏', 100, '男', 30])

items 返回可遍历的( ( 键 , 值 ) 元组数组

In [5]: info.items()

Out[5]: dict_items([('name', '小鹏'), ('id', 100), ('sex', '男'), ('age', 30)])

has_key  Python3中废弃了,这个方法是python 2.6以后支持的,

但在python 3.0版本开始将使用in.  dict.has_key(key)如果key在字典中,返回True,否则返回False

2.4.5 字典 遍历

通过for ... in ...:的语法结构,我们可以遍历字符串、列表、元组、字典等数据结构。

字符串遍历

列表遍历

元组遍历

a_str = "hello atguigu"

for a in a_str:

print(a)

a_list = [" 刘备", 2, [" 曹操"," 曹丕"], "孙权", 5]

for a in a_list:

print(a,end=" ")

print("")

a_tuple = (" 曹操", " 刘备", 3, 4, 5)

for a in a_tuple:

print(a,end=" ")

print("")

遍历字典的key(键)

name = {"name":"小鹏","id":100,"sex":"男","age":30}

for key in name.keys():

    print(key)

遍历字典的value(值)

for value in name.values():

    print(value)

遍历字典的items项(元素)

for ite in name.items():

    print(ite)

遍历字典的key-value(键值对)

for key,value in name.items():

    print(key,value)

2.4.6 遍历列表引入

如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:

names = [" 小鹏"," 几何心凉"," 貂蝉"]

for i in range(len(names)):

print("%d %s "% (i,names[i]))

上述方法有些累赘,利用枚举遍历 enumerate() 会更加直接和优美:

names = [" 小鹏"," 几何心凉"," 貂蝉"]

for index,value in enumerate(names):

print("%d %s " % (index,value))

enumerate还可以接收第二个参数,用于指定索引起始值,如:

names = [" 小鹏"," 几何心凉"," 貂蝉"]

for index,value in enumerate(names,2):   #2从第几个开始

print("%d %s " % (index,value))

enumerate() 遍历字典:

infos = {'name':' 小鹏', 'id':100, 'sex':' 男生', 'address':' 中国北京'}

for index,value in enumerate(infos):

print("%d %s " % (index,value))

enumerate() 遍历值:

infos = {'name':' 小鹏', 'id':100, 'sex':' 男生', 'address':' 中国北京'}

for index,value in enumerate(infos.values()):

print("%d %s " % (index,value))

👑👑👑结束语👑👑👑

image.gif

目录
相关文章
|
14天前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
|
27天前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
29天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
18 1
|
1月前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 9
SciPy教程之常量模块介绍,涵盖多种单位类型,如公制、质量、角度、时间、长度、压强等。示例展示了如何使用`scipy.constants`模块查询不同压强单位对应的帕斯卡值,包括atm、bar、torr、mmHg和psi。
15 1
|
27天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
17 0
|
27天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
16 0
|
27天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
18 0
|
28天前
|
C语言 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第24天】在Python编程的世界中,追求代码的简洁性和可读性是永恒的主题。列表推导式(List Comprehensions)作为Python语言的一个特色功能,提供了一种优雅且高效的方法来创建和处理列表。本文将深入探讨列表推导式的使用场景、语法结构以及如何通过它简化日常编程任务。
|
29天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy 教程之 SciPy 模块列表 13 - 单位类型。常量模块包含多种单位:公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例:`constants.zero_Celsius` 返回 273.15 开尔文,`constants.degree_Fahrenheit` 返回 0.5555555555555556。
14 0
下一篇
无影云桌面