当前位置:   article > 正文

Python18 数据结构与数据类型转换

Python18 数据结构与数据类型转换

图片

1.python中的数据结构

在Python中,数据结构是用来存储、组织和管理数据的方式,以便有效地执行各种数据操作。Python提供了几种内置的数据结构,每种都有其特定的用途和操作方法。以下是Python中一些主要的数据结构:

1.列表(List):

    • 列表是一种有序的数据集合,可以动态地增加和减少元素。

    • 列表中的元素可以是不同类型的,可以包含重复值。

    • 列表支持索引和切片操作,可以通过索引访问或修改其中的元素。

2.元组(Tuple):

    • 元组与列表类似,但是一旦创建就不能被修改(不可变)。

    • 元组通常用于保护数据不被修改,以及当函数需要返回多个值时。

3.字典(Dictionary):

    • 字典是基于键值对的数据结构,可以快速检索存储的数据。

    • 每个键值对映射一个键到一个值。键必须是唯一的,而值则可以是任何数据类型。

    • 字典是无序的,但从Python 3.7开始,字典维护元素的插入顺序。

4.集合(Set):

    • 集合是一个无序的元素集,自动排除任何重复项。

    • 集合主要用于测试成员资格、去除重复项和执行数学上的集合操作(如交集、并集、差集等)。

5.栈(Stack):

    • 栈是一个后进先出(LIFO)的数据结构,只能在一端(通常是顶部)进行添加或移除元素。

    • Python中没有内置的栈数据结构,但可以使用列表来实现栈的功能。

6.队列(Queue):

    • 队列是一个先进先出(FIFO)的数据结构,元素从一端添加,从另一端移除。

    • Python的collections模块提供了deque,支持从两端快速添加和删除元素,适用于队列实现。

这些数据结构是编程中的基本工具,帮助开发者有效管理和处理数据。

2.列表List

查看特定元素的索引:

  1. a=[1,2,3,3]
  2. b=[4,5,6]
  3. # 查看元素的索引 2的索引为1
  4. a.index(2)  # 1

合并两个列表:

  1. # 合并两个列表
  2. a.extend(b)
  3. a  # [1233456]

删除列表特定元素:

  1. # 删除列表元素
  2. a.remove(3)
  3. a  # [123456]

列表添加元素:

  1. # 添加元素
  2. a.append(1)
  3. a  # [1234561]

翻转列表:

  1. # 翻转列表
  2. a.reverse()
  3. a  # [1654321]

列表排序:

  1. # 列表排序
  2. a.sort()
  3. a  # [1123456]

列表弹出元素:

  1. # 弹出元素
  2. a.pop(1)
  3. a  # [123456]

计算元素个数:

  1. # 计算列表中4的个数
  2. a.count(4)  # 1

列表去重:

  1. # 列表去重
  2. a=[144555666]
  3. a=list(set(a))
  4. a  # [1456]

去重并保持index不变:

  1. # 去重保持index不变
  2. ids = [1,4,3,3,4,2,3,4,5,6,1]
  3. news_ids = list(set(ids))
  4. news_ids.sort(key=ids.index)
  5. news_ids  # [143256]

对以元组为元素的列表进行条件排序:

  1. # sorted函数
  2. import operator
  3. students=[('yan','A',15),('qiang','B',17),('li','O',20)]
  4. # 按照年龄进行逆排序(从大向小)
  5. sorted(students,key=operator.itemgetter(2),reverse=True)
  6. # [('li''O'20), ('qiang''B'17), ('yan''A'15)]

列表转换成元组:

  1. # 将列表转换成元组
  2. = [1456]
  3. tuple(a)  # (1456)

列表切片操作:

  1. li=[1,2,3,4,5,6,7]
  2. li[1:]  # [234567]
li[::-1]  # [7654321]
  1. # 步长为2
  2. li[::2]  # [1357]

3.字符串String

  1. a="helloworld"
  2. max(a)  # 'w'
min(a)  # 'd'
len(a)  # 10
  1. # 获取指定元素的index
  2. a.index('h')  # 0
bool('o' in a)  # True
a+a  # 'helloworldhelloworld'
a*3  # 'helloworldhelloworldhelloworld'
a[5]  # a[5]
a[1:4]  # 'ell'
a[-1]  # 'd'

4.字符串、元组、列表和字典转换

字典转其他数据类型:

dict={'name':'quincy','age':7,'class':'First'}
  1. #字典转换成字符串
  2. print(str(dict),type(str(dict)))
  3. # {'name''Cheney''age'30'class''First'<class 'str'>
  1. # 字典转成元组
  2. print(tuple(dict))
  3. # ('name', 'age', 'class')
  1. # 字典的值转换成元组
  2. print(tuple(dict.values()))
  3. # ('Cheney', 30, 'First')
  1. #字典索引转换成列表
  2. print(list(dict))
  3. ['name''age''class']
  1. #字典的值转换成列表
  2. print(list(dict.values()))
  3. ['Cheney', 30, 'First']

元组转其他数据类型:

tup=(1,2,3,4,5)
  1. # 元组转换成字符串
  2. print(str(tup),type(str(tup)))
  3. tup_str=str(tup)  # (12345<class 'str'>
  4. for ele in tup_str:
  5. #     print(ele)
  1. # 元组转换成列表
  2. print(list(tup))  # [12345]

元组不可以转化成字典。

列表转其他数据类型:

nums=[1,2,3,4,5,6,7]
  1. # 将列表转换成字符串
  2. print(str(nums), type(str(nums)))  # [1234567<class 'str'>
  1. # 将列表转换成元组
  2. print(tuple(nums))  # (1234567)

列表不可以转换成字典。

字符串转其他数据类型:

  1. # 字符串转化为元组
  2. print(tuple(eval("(1,2,4)")))  # (1, 2, 4)
  1. # 将字符串转化为列表
  2. print(list(eval("[1,2,4]")))  # [1, 2, 4]
  1. # 将字符串转为字典
  2. # eval 将字符串str当成有效的表达式来求值并返回计算结果。
  3. print(eval("{'name':'cheney','age':23}"))
  4. print(type(eval("{'name':'Cheney','age':23}")))
  5. # {'name': 'cheney', 'age': 23}
  6. <class 'dict'>

以上内容总结自网络,如有帮助欢迎转发,我们下次再见!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/762427
推荐阅读
相关标签
  

闽ICP备14008679号