python学习手册——列表&字典&元组

该博客主要介绍了Python中列表、字典和元组的相关知识。列表是最具灵活性的有序集合,有多种操作方法;字典是无序集合,通过键存取元素;元组是不可修改的集合。还给出了三者的应用实例,如列表的append和sort操作、字典的update方法等。

纸上得来终觉浅,绝知此事要躬行!

 

目录

列表

help(list):

列表应用实例

字典

help(dict):

字典应用实例

元组

help(tuple):

元组应用实例


 

列表

列表是Python中最具灵活性的有序集合对象类型。列表可以包含任何种类的对象。列表的特点:

  1. 任意对象的有序集合
  2. 通过偏移读取
  3. 可变长度、异构以及任意嵌套
  4. 属于可变序列的分类
  5. 对象引用数组

help(list):

<pre>Help on class list in module builtins:

class list(object)
 |  list() -&gt; new empty list
 |  list(iterable) -&gt; new list initialized from iterable's items
 |  
 |  Methods defined here:
 |  '''

……
 |  '''
 |  __sizeof__(...)
 |      L.__sizeof__() -- size of L in memory, in bytes
 |  
 |  append(...)
 |      L.append(object) -&gt; None -- append object to end
 |  
 |  clear(...)
 |      L.clear() -&gt; None -- remove all items from L
 |  
 |  copy(...)
 |      L.copy() -&gt; list -- a shallow copy of L
 |  
 |  count(...)
 |      L.count(value) -&gt; integer -- return number of occurrences of value
 |  
 |  extend(...)
 |      L.extend(iterable) -&gt; None -- extend list by appending elements from the iterable
 |  
 |  index(...)
 |      L.index(value, [start, [stop]]) -&gt; integer -- return first index of value.
 |      Raises ValueError if the value is not present.
 |  
 |  insert(...)
 |      L.insert(index, object) -- insert object before index
 |  
 |  pop(...)
 |      L.pop([index]) -&gt; item -- remove and return item at index (default last).
 |      Raises IndexError if list is empty or index is out of range.
 |  
 |  remove(...)
 |      L.remove(value) -&gt; None -- remove first occurrence of value.
 |      Raises ValueError if the value is not present.
 |  
 |  reverse(...)
 |      L.reverse() -- reverse *IN PLACE*
 |  
 |  sort(...)
 |      L.sort(key=None, reverse=False) -&gt; None -- stable sort *IN PLACE*
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |  
 |  __hash__ = None

</pre>

常用列表操作包括赋值、索引、切片、合并、重复、迭代、增减、排序、搜索、插入、反转等。

列表应用实例

append和sort原处修改相关的列表对象,而结果并没有返回列表。

# 解析
In[7]:3 in [1,2,3]
Out[7]:True

In [20]:list(map(abs,[0,-1,2.3,-4]))
Out[20]:[0, 1, 2.3, 4]


# 排序
In[34]:L=["日","月","星","辰"]
L.sort()
L
Out[34]:['日', '星', '月', '辰']

字典

列表是有序对象的集合,字典可以认为是无序的集合。字典与列表的差别:字典当中的元素通过键来存取,而不是偏移。

  1. 通过键而不是偏移量来读取
  2. 任意对象的无序集合
  3. 可变长、异构、任意嵌套
  4. 属于可映射类型
  5. 对象引用表

help(dict):

<pre>Help on class list in module builtins:

class list(object)
 |  list() -&gt; new empty list
 |  list(iterable) -&gt; new list initialized from iterable's items
 |  
 |  Methods defined here:
 |  
……
 |  __sizeof__(...)
 |      L.__sizeof__() -- size of L in memory, in bytes
 |  
 |  append(...)
 |      L.append(object) -&gt; None -- append object to end
 |  
 |  clear(...)
 |      L.clear() -&gt; None -- remove all items from L
 |  
 |  copy(...)
 |      L.copy() -&gt; list -- a shallow copy of L
 |  
 |  count(...)
 |      L.count(value) -&gt; integer -- return number of occurrences of value
 |  
 |  extend(...)
 |      L.extend(iterable) -&gt; None -- extend list by appending elements from the iterable
 |  
 |  index(...)
 |      L.index(value, [start, [stop]]) -&gt; integer -- return first index of value.
 |      Raises ValueError if the value is not present.
 |  
 |  insert(...)
 |      L.insert(index, object) -- insert object before index
 |  
 |  pop(...)
 |      L.pop([index]) -&gt; item -- remove and return item at index (default last).
 |      Raises IndexError if list is empty or index is out of range.
 |  
 |  remove(...)
 |      L.remove(value) -&gt; None -- remove first occurrence of value.
 |      Raises ValueError if the value is not present.
 |  
 |  reverse(...)
 |      L.reverse() -- reverse *IN PLACE*
 |  
 |  sort(...)
 |      L.sort(key=None, reverse=False) -&gt; None -- stable sort *IN PLACE*
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |  
 |  __hash__ = None

</pre>

字典应用实例

每当对新字典键进行赋值(之前不存在的键),就会在字典内生成一个新的元素。这与列表是不同的,Python会将超过列表末尾的偏移视为越界并报错,扩充列表需要append方法或分片赋值来实现。

字典的update方法类似于合并,但是它与顺序无关,它将一个字典的键和值合并到另一个字典中,且盲目地覆盖相同的键的值。

In [41]:D={"a":1,"b":2,"c":3}
        list(D.keys())
        list(D.values())
        list(D.items())
Out[41]:['a', 'b', 'c']
        [1, 2, 3]
        [('a', 1), ('b', 2), ('c', 3)]

In [42]:D["e"]=["a","b"]
        D
Out[44]:{'a': 1, 'b': 2, 'c': 3, 'e': ['a', 'b']}

In [47]:D2={"d":4,"e":"a"}
        D.update(D2)
        D
Out[47]:{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 'a'}

元组

元组是无法修改的(其它对象的)集合。元组不支持任何方法调用,不过具有列表的大多数属性:

  1. 任意对象的有序集合
  2. 通过偏移存取
  3. 属于不可变序列类型
  4. 固定长度、异构、任意嵌套
  5. 对象引用的数组

​​​​​​​help(tuple):

Help on class tuple in module builtins:

class tuple(object)
 |  tuple() -> empty tuple
 |  tuple(iterable) -> tuple initialized from iterable's items
 |  
 |  If the argument is a tuple, the return value is the same object.
 |  
 |  Methods defined here:
 |  
 |  __add__(self, value, /)
 |      Return self+value.
 |  
 |  __contains__(self, key, /)
 |      Return key in self.
 |  
 |  __eq__(self, value, /)
 |      Return self==value.
 |  
 |  __ge__(self, value, /)
 |      Return self>=value.
 |  
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |  
 |  __getitem__(self, key, /)
 |      Return self[key].
 |  
 |  __getnewargs__(...)
 |  
 |  __gt__(self, value, /)
 |      Return self>value.
 |  
 |  __hash__(self, /)
 |      Return hash(self).
 |  
 |  __iter__(self, /)
 |      Implement iter(self).
 |  
 |  __le__(self, value, /)
 |      Return self<=value.
 |  
 |  __len__(self, /)
 |      Return len(self).
 |  
 |  __lt__(self, value, /)
 |      Return self<value.
 |  
 |  __mul__(self, value, /)
 |      Return self*value.n
 |  
 |  __ne__(self, value, /)
 |      Return self!=value.
 |  
 |  __new__(*args, **kwargs) from builtins.type
 |      Create and return a new object.  See help(type) for accurate signature.
 |  
 |  __repr__(self, /)
 |      Return repr(self).
 |  
 |  __rmul__(self, value, /)
 |      Return self*value.
 |  
 |  count(...)
 |      T.count(value) -> integer -- return number of occurrences of value
 |  
 |  index(...)
 |      T.index(value, [start, [stop]]) -> integer -- return first index of value.
 |      Raises ValueError if the value is not present.

元组应用实例

元组的不可变性只适用于元组本身顶层而并非其内容。

x=(5)
y=(5,)
print(type(x),type(y),type(z))

# <class 'int'> <class 'tuple'> <class 'tuple'>
基于STM32 F4的永磁同步电机无位置传感器控制策略研究内容概要:本文围绕基于STM32 F4的永磁同步电机(PMSM)无位置传感器控制策略展开研究,重点探讨在不依赖物理位置传感器的情况下,如何通过算法实现对电机转子位置速度的精确估计与控制。文中结合嵌入式开发平台STM32 F4,采用如滑模观测器、扩展卡尔曼滤波或高频注入法等先进观测技术,实现对电机反电动势或磁链的估算,进而完成无传感器矢量控制(FOC)。同时,研究涵盖系统建模、控制算法设计、仿真验证(可能使用Simulink)以及在STM32硬件平台上的代码实现与调试,旨在提高电机控制系统的可靠性、降低成本并增强环境适应性。; 适合人群:具备一定电力电子、自动控制理论基础嵌入式开发经验的电气工程、自动化及相关专业的研究生、科研人员及从事电机驱动开发的工程师。; 使用场景及目标:①掌握永磁同步电机无位置传感器控制的核心原理与实现方法;②学习如何在STM32平台上进行电机控制算法的移植与优化;③为开发高性能、低成本的电机驱动系统提供技术参考与实践指导。; 阅读建议:建议读者结合文中提到的控制理论、仿真模型与实际代码实现进行系统学习,有条件者应在实验平台上进行验证,重点关注观测器设计、参数整定及系统稳定性分析等关键环节。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值