Python基础之四种常见数据结构

列表

  • 列表:他其中的每一个元素都是可变的,有序的,是可以进行索引查看的也就表明可以对列表中的每个元素进行增删查改的操作。那么范围是列表中的元素是python中的任何对象。
  • 列表也是Python中常用的数据类型,其数据项是不需要具有相同类型的。
列表的操作
列表基本操作
 方括号赋值:ls = [1,2,3]
   调用list函数定义:ls = list()
   添加:ls.append('f')
   插入:ls.insert(0, 'a')
   extend(合并,不去重):addlist= ['b','c','a']
                        ls.extend(addlist)
                        print(change_tup) #['a', 'e', 'f', 'b', 'c', 'a']
    ls.pop()删除并返回指定索引处的值
    ls.remove用于按值删除元素,找到一个符合要求的值  *斜体样式* 
        
列表其余操作
# +表示组合(拼接)列表
[1,2,3] + [4,5,6]   >>> [1,2,3,4,5,6]
l = [1, 4, 9, 16, 25]
l += [3,5,6]  
l >>>>>>> [1,3,4,5,6,9,16,25]
# * 表示列表重复
[1] *4 >>>>>> [1,1,1,1]
# 判断存不存在与列表
4 in [1,2]  >>> False
# 嵌套列表
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n] 
x >>>>> [['a', 'b', 'c'], [1, 2, 3]]
列表的函数
函数或方法说明函数或方法说明
len()表示元素个数list.pop()移除列表指定元素
list.append()末尾添加新对象list.reverse()反向列表元素
list.count()统计某元素出现的次数list.sort()排序
list.extend()在列表末尾一次性追加另一个序列中的多个值list.clear()清空列表
list.index()索引匹配list.copy()复制
list.insert()插入list.min()最小元素
list.remove()移除列表中某个值的第一匹配项list.max()最大元素
列表栈和队列
  • 列表可以很容易的当做一个堆栈来使用,堆栈的规则是后进先出。
  • 即:最先进的元素最后一个释放,并且使用append()的方法添加栈顶,使用pop()方法释放元素
 stack = [3, 4,5]
 stack.append(6)
 stack.append(7)
 stack  >>> [3, 4, 5, 6, 7]
 stack.pop()  >>>> 7
  • 列表也可做队列使用,遵循先进先出的原则。但是在列表的里插入或者从头部弹出的时间复杂度大。
from collections import deque
 queue = deque([1,2,3])
 queue.append(4)
 queue.popleft()  >> 1
列表推导式
  • 列表推导式是序列创建成列表的简单途径。
  • 一般都是根据确定的判定条件创建序列
  • 每个列表推导式都在for之后跟随一个表达式, 然后根据表达式的结果返回一个列表
  • [3*x for x in range(1,10) if x >3]

字典

  • 字典中的值是可变的,无序的。
  • 字典中的数据必须是键值对的形式。
  • 键不可重复,值可重复
  • 字典中的键是不可变对象,不能修改(字符串,数字或元组);值是可变对象。
  • 字典是一种可变容器模型,存储任意值,包括在{}中
  • 字典创建与访问
  • 创建
dic = {"abc": abc}  或  dic = dict()
  • 访问
   dic["abc"] ===> abc
   # 修改(键存在)增加(键不存在)
   dic["abc"] = 8  ===> 8
   # update批量更新
   dic = {"name":"老王","age":18,"height":1.75,"gender":"男"}
   new_dic = {"name":"小红","hobby":"唱跳rap"}  # 如果 有不存在的键 会 增加
   dic.update(new_dict)
   # 删除
   del dic   # 删除字典
   del dic["abc"]  # 删除键
   dic.clear()  # 清空字典
   pop(dic["abc"]) # 删除键对应的值
   # 遍历
   for key in dic.keys():
       pass
   for value in dic.values():
       pass
   for key, values in dic.items()pass
  • List item

元组

  • 元组使用(),元素是不可修改,但可以被用作索引,所以也可以当做字典的键
元组创建访问
  • tup = (), 或 tup = "1", "a" :注意, 当元组只包含一个元素时,需要在元素后面加逗号,否则会被当做运算法使用。

  • 元组的下标索引从0开始,元组中的元素值是不可修改的,只能对元组进行拼接组合或者删除整个元组。
    # 修改元组 tup1 =('1', '2') tup2 = ('3,', '4') tup = tup1 + tup2 ===> ('1', '2', '3', '4')

  • 元组的的截取,索引等操作适合列表一样的。

集合

  • 集合中是可变的,无序的不重复的序列
  • 可以使用大括号或者set()函数创建集合,但是空集合必须使用set()
  • 集合的创建和访问
   # 创建
      a = set()
      b = {"1", "2","3"}
   # 集合的运算
    a = set{"1", "2"}
    b = set{ "2","3","4"}
    a -b   # 集合a中包含而集合b中不包含的元素
    a|b    # 集合a或b中包含的所有元素
    a&b   # 集合a和b中都包含了的元素
    a^b   #  不同时包含于a和b的元素
    #  集合推导式
    a = {x for x in 'abracadabra' if x not in 'abc'}
    a.add(x)   # 添加
    a.update(x)  # 更新
    a.remove()   # 移除 从后往前移除
    a.pop()   # 随机移除
    len(a)   #  集合元素个数
    a.clear()   # 清空集合
    x in a    # 判断元素是否在集合中
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 是一种高级语言,其语法简单易懂,非常适合用来实现数据结构和算法。下面介绍几种常用的数据结构和算法的 Python 实现。 1. 数组 在 Python ,可以用列表(list)来实现数组。例如,以下代码实现了一个长度为 5 的整型数组: ``` arr = [0] * 5 ``` 2. 栈 栈是一种后进先出(LIFO)的数据结构,可以用 Python 的列表来实现。例如,以下代码实现了一个栈: ``` stack = [] # 初始化一个空栈 # 入栈 stack.append(1) stack.append(2) stack.append(3) # 出栈 top = stack.pop() # 弹出栈顶元素(3) ``` 3. 队列 队列是一种先进先出(FIFO)的数据结构,可以用 Python 的列表来实现。例如,以下代码实现了一个队列: ``` queue = [] # 初始化一个空队列 # 入队 queue.append(1) queue.append(2) queue.append(3) # 出队 front = queue.pop(0) # 弹出队首元素(1) ``` 4. 链表 链表是一种通过指针链接各个节点的数据结构,可以用 Python 的类来实现。例如,以下代码实现了一个链表节点和链表: ``` class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class LinkedList: def __init__(self): self.head = None # 在链表末尾插入一个节点 def append(self, val): if not self.head: self.head = ListNode(val) else: curr = self.head while curr.next: curr = curr.next curr.next = ListNode(val) # 删除链表第一个值为val的节点 def delete(self, val): if not self.head: return if self.head.val == val: self.head = self.head.next return curr = self.head while curr.next: if curr.next.val == val: curr.next = curr.next.next return curr = curr.next ``` 5. 递归 递归是一种通过函数调用自身来解决问题的方法,可以用 Python 的函数来实现。例如,以下代码实现了一个递归函数,计算斐波那契数列第 n 项的值: ``` def fib(n): if n == 0 or n == 1: return n return fib(n-1) + fib(n-2) ``` 6. 排序 排序是一种将数据按照指定规则进行排序的算法,可以用 Python 的内置函数来实现。例如,以下代码实现了一个简单的选择排序: ``` def selection_sort(arr): n = len(arr) for i in range(n): min_idx = i for j in range(i+1, n): if arr[j] < arr[min_idx]: min_idx = j arr[i], arr[min_idx] = arr[min_idx], arr[i] ``` 以上是 Python 实现常用的数据结构和算法的简单介绍,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值