Python中列表,元组,字典的一些基本用法

news/2024/10/18 18:14:33/

一 列表:
创建列表:
列表变量名 =[元素1,元素2,元素3,…];

列表元素的访问:
使用索引访问例如:

>>> money=[10,11,12,20]
>>> money[1]
11
>>> money[0]
10
>>>  

当然索引也可以是负数,表示的是倒数第几个,例如:


>>> money[-1]
20
>>> money[-3]
11
>>>  

切片:
list[x,y] 表示从索引为x的元素到索引为y-1的元素,x,y的取值可以是正数,也可以是负数。
下面是一些运行的实列:

>>> list=[1,2,3,4,5,6,7,8,9]
>>> list[1:3]
[2, 3]
>>>  

切片list[x,y] 其中x的位置不给予值则是从列表开头到y-1,例如:

>>> list=[1,2,3,4,5,6,7,8,9]
>>> list[:3]
[1, 2, 3]
>>>  

切片list[x,y]其中y的位置不给予值则是从列表的x位置到列表最后的位置,例如:

>>> list=[1,2,3,4,5,6,7,8,9]
>>> list[0:]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>  

当然索引x,y也可以为负数,例如:

>>> list=[1,2,3,4,5,6,7,8,9]
>>> list[-4:-2]
[6, 7]
>>>  

删除列表元素:
使用del删除列表的某一元素:

>>> list=[1,2,3,4,5,6,7,8,9]
>>> del list[1]
>>> list
[1, 3, 4, 5, 6, 7, 8, 9]
>>> del list[-1]
>>> list
[1, 3, 4, 5, 6, 7, 8]
>>>  

利用切片,删除一段:

>>> list=[1,2,3,4,5,6,7,8,9]
>>> del list[1:3]
>>> list
[1, 4, 5, 6, 7, 8, 9]
>>> list=[1,2,3,4,5,6,7,8,9]
>>> del list[-3:-1]
>>> list
[1, 2, 3, 4, 5, 6, 9]
>>>  

删除整个列表:

>>> list=[1,2,3,4,5,6,7,8,9]
>>> del list
>>> list
<class 'list'>
>>>  

列表复制:
先举一个例子,程序如下:

>>> list=[1,2,3,4,5,6,7,8,9]
>>> t_list=list
>>> t_list
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list[0]=100
>>> list
[100, 2, 3, 4, 5, 6, 7, 8, 9]
>>> t_list
[100, 2, 3, 4, 5, 6, 7, 8, 9]
>>>  

可以看到我们改变list[0]的值,相应的t_list的值也跟着变了,并没有达到我们要求的复制的功能。
第一种方法,使用切片进行复制:

>>> list=[1,2,3,4,5,6,7,8,9]
>>> t_list=list[:]
>>> list[0]=100
>>> list
[100, 2, 3, 4, 5, 6, 7, 8, 9]
>>> t_list
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>  

可以看到这里t_list没有改变。
第二种方法,使用list.copy()方法


>>> list=[1,2,3,4,5,6,7,8,9]
>>> t_list=list.copy()
>>> list[0]=100
>>> list
[100, 2, 3, 4, 5, 6, 7, 8, 9]
>>> t_list
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>  

列表可能用到的一些函数:

list(seq) 将一个序列转换为列表类型如:

>>> s="python"
>>> list(s)
['p', 'y', 't', 'h', 'o', 'n']
>>>  

len(list) 返回列表的长度

>>> s=[1,2,3,4,5,6,7,8,9]
>>> len(s)
9
>>>  

max(list) 返回列表中最大的元素,元素必须是同类型的数据,都是数字,或者字符串等等

>>> s=[1,2,3,4,5,6,7,8,9]
>>> max(s)
9
>>>  

min(list)的用法和max(list)类似这里不做赘述。

sorted(list[,reverse=True/False]) []内的参数是可写可不写的,不是必须写的参数,不在[]内的是必须写的参数。改函数的作用是对列表元素按照ASCII码的顺序进行排序,并把排序后的列表作为返回值,并不修改原列表。其中reverse参数默认为False,表示升序排列,如果令reverse=True则降序排列,需要注意的是列表中的元素需要时同一类型的既都是数字或者都是字符等等

列表可能用到的一些方法:
list.sort([reverse=True/False]),这个方法会把修改后的顺序存储在原列表中,这里又sorted()函数不同,其他的一些注意事项与sorted()相同。

>>> list=[9,2,3,5,1]
>>> list.sort()
>>> list
[1, 2, 3, 5, 9]
>>>  

list.reverse(),将列表反向排列,作用在原列表中。


>>> list=[9,2,3,5,1]
>>> list.reverse()
>>> list
[1, 5, 3, 2, 9]
>>>  

list.append(n) 在列表末尾怎加一个元素n

>>> list=[1,2,3,4,5,6]
>>> list.append(7)
>>> list
[1, 2, 3, 4, 5, 6, 7]
>>>  

list.pop(n) 删除并且返回列表中索引为n的元素,如果n不写则为最后一个元素。

>>> list=[1,2,3,4,5,6,7,8,9]
>>> list.pop(8)
9
>>> list
[1, 2, 3, 4, 5, 6, 7, 8]
>>> list.pop()
8
>>> list
[1, 2, 3, 4, 5, 6, 7]
>>>  

list.count(n) 返回元素n在列表中出现的次数。

>>> list=[1,2,1,1,3,2]
>>> list.count(1)
3
>>>  

list.index(n) 返回元素n在列表中第一次出现时的索引

>>> list=[1,2,3,1,2,3]
>>> list.index(1)
0
>>>  

list.remove(n)这个方法会移除列表中第一次出现的元素n,后面还有不会移除

>>> list=[1,2,3,1,2,3]
>>> list.remove(2)
>>> list
[1, 3, 1, 2, 3]
>>>  

list.insert(n,x)
在索引为n 的位置插入元素x

>>> list=[1,2,3,1,2,3]
>>> list.insert(1,0)
>>> list
[1, 0, 2, 3, 1, 2, 3]
>>>  

list.clear()清空列表

>>> list=[1,2,3,1,2,3]
>>> list.clear()
>>> list
[]
>>>  

list.copy() 复制一个列表

>>> list=[1,2,3,1,2,3]
>>> list1=list.copy()
>>> list1
[1, 2, 3, 1, 2, 3]
>>>  

元组:
元组的元素不可以修改。
定义一个元组 :
元组名 = (元素1,元素2,元素3,…)

如果元组内有一个元素,那么这个元素后面的逗号(,)不能省略,例如:

>>> yz=(1)
>>> yz
1
>>> yz=1
>>> yz
1
>>>  

可以看到这里yz=(1) 与yz=1 时等价的。
元组中只有一个元素的时候我们应该这样赋值,如下:

>>> yz=(1,)
>>> yz
(1,)
>>>  

下面演示的是创建空的元组:


>>> yz=()
>>> yz
()
>>>  

元组的切片和索引等等和列表类似这里不一一列举了。
下面说一下操作元素的有关函数。
tuple(seq) 这个函数可以使seq序列转换成元组 例如:

>>> list=[1,2,3,4,5,6,7,8]
>>> tuple(list)
(1, 2, 3, 4, 5, 6, 7, 8)
>>>  

下面有很多函数的用法和列表中函数的用法相同

len(tuple) 返回元组的长度。

max(tuple) 返回元组中最大的元素(元组中的数据必须是同类型)

min(tuple) 返回元组中最小的元素

sorted(tuple[,reverse=True/False]) 改函数返回的为一个列表(并不是元组)元组里面的元素必须是同一类型。例如:

>>> tuple=(9,8,5,2,1,4)
>>> sorted(tuple)
[1, 2, 4, 5, 8, 9]
>>>  

如果不是同一类型,就会出错:

>>> tuple=(9,8,5,2,1,4,'a','b')
>>> sort(tuple)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'sort' is not defined
>>>  

sum(tuple) ,对元组里面的元素进行求和(元组里面必须都是数字)

>>> tuple=(1,2,3,4,5)
>>> sum(tuple)
15
>>> tuple=('a','b','c')
>>> sum(tuple)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>>  

元组的一些方法和列表类似,如下:

tuple.count(x) 返回元素x在元组中出现的次数

tuple.index(x) 返回元素x在元组中第一次出现时的索引。

                                  **字典:**

建立字典的格式如下。
字典名 = {键1:值1,键2:值2,…}

访问字典的格式如下:
字典名[键]
注意:
1.字典中的键不能重复,如果重复,只有最后面的键会被记录。

>>> dict={"xu":1,"long":2,"xu":3}
>>> dict["xu"]
3
>>>  

2.字典中的键必须是不可变的数据类型,比如数字,字符串,而不能用列表。

3.字典中的元素是无序的,所以不能通过索引来访问,也不能通过字典中不存在的键来访问

>>> dict={"xu":1,"long":2}
>>> dict["run"]
Traceback (most recent call last):File "<stdin>", line 1, in <module>
KeyError: 'run'
>>> diat[1]
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'diat' is not defined
>>>  

字典操作的有关函数:
len(dict),返回字典的长度

>>> dict={"xu":1,"long":2}
>>> len(dict)
2
>>>  

dict(seq),将seq转换为字典(seq中的元素必须有映射关系)如下:

>>> zd=[("xu",1),("long",2)]
>>> t=dict(zd)
>>> t
{'xu': 1, 'long': 2}
>>>  

字典的有关方法
dict1.update(dict2) 可以扩展一个字典。如下:

>>> dict1={"xu":1,"long":2}
>>> dict2={"run":3}
>>> dict1.update(dict2)
>>> dict1
{'xu': 1, 'long': 2, 'run': 3}
>>>  

dict.clear() 清空一个字典

dict.fromkeys(seq[,value]) 这个方法可以创建一个字典,以序列seq为新字典的键,默认值为None,可选参数value可以所有的键赋一个相同的值,程序如下:

>>> list=["xu","long","run"]
>>> dict1=dict1.fromkeys(list)
>>> dict1
{'xu': None, 'long': None, 'run': None}
>>> dict1=dict1.fromkeys(list,1)
>>> dict1
{'xu': 1, 'long': 1, 'run': 1}
>>>  

dict.pop(key) 这个方法可以删除字典中与键key所对应的键值对,并返回这个键的值。

>>> dict1={"xu":1,"long":2}
>>> dict1.pop("xu")
1
>>>  

dict.popitem() 随机获取并删除字典中的一个键值对。

>>> dict1={"xu":1,"long":2,"run":3,"ai":4,"mou":5}
>>> dict1.popitem()
('mou', 5)
>>>  

dict.get(key) 这个方法来访问一个不确定存不存在的键key的值,如果存在就返回他的值,不存在不会出现错误。例如:

>>> dict1={"xu":1,"long":2,"run":3,"ai":4,"mou":5}
>>> dict1.get("xu")
1
>>> dict1.get("liu")
>>>  

dict.setdefault(key,value) 这个方法可以获取一个可能不存在的键值,当键存在时就返回他的值,当键不存在时,还可以添加这个键和在参数中设置的值并返回这个值。例如:

>>> dict1={"xu":1,"long":2,"run":3,"ai":4,"mou":5}
>>> dict1.setdefault("xu",1)
1
>>> dict1.setdefault("liu",1)
1
>>> dict1
{'xu': 1, 'long': 2, 'run': 3, 'ai': 4, 'mou': 5, 'liu': 1}
>>>  

http://www.ppmy.cn/news/128978.html

相关文章

(转)make的常见错误信息

(转)make的常见错误信息 make执行过程中所产生错误并不都是致命的&#xff1b;特别是在命令行之前存在“-”、或者make使用“-k”选项执行时。make执行过程的致命错误都带有前缀字符串“***”。 错误信息都有前缀&#xff0c;一种是执行程序名作为错误前缀&#xff08;通常是“…

Android实验五-组件通信2

5.2、Intent对象 Intent是一种轻量级消息传递机制&#xff0c;旨在解决各项组件之间的通信问题。它描述了应用中一次操作的动作、动作涉及数据、附加数据&#xff0c;Android则根据此描述&#xff0c;负责找到对应的组件&#xff0c;将 Intent传递给调用的组件&#xff0c;并完…

金刚石切割丝的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

本文研究全球与中国市场金刚石切割丝的发展现状及未来发展趋势&#xff0c;分别从生产和消费的角度分析金刚石切割丝的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要…

动词的时态(Les temps du verbe )

在开始讲解直陈式现在时的主要用法之前,我们有必要先搞清楚两个基本概念:▶语式(mode):语式是动词表达动作的方式。一个动作,可以作为实在的事表达出来,也可以作为希望或单纯设想的事表达出来,法语动词共有六种语式:直陈式,命令式,条件式,虚拟式,分词式和不定式。…

提高情商 倾听能力

父文章 表达 ,情感描写 沟通 工具书_个人渣记录仅为自己搜索用的博客-CSDN博客 让 chatgpt推荐的 1. 心理学倾听教程 2. 表达 - 比喻 具象 ,有画面感 https://blog.csdn.net/fei33423/article/details/129131137 小说&#xff1a; 1.《呼啸山庄》&#xff08;Wuthering He…

表达 ,情感描写 沟通 工具书

父文章 人人都是xx_个人渣记录仅为自己搜索用的博客-CSDN博客 相关 如何表达,写好文章,技术文章,论文_如何写好技术文章_个人渣记录仅为自己搜索用的博客-CSDN博客 人人都是总结大师_fei33423 人人都是_个人渣记录仅为自己搜索用的博客-CSDN博客 提高情商 倾听能力_个人渣记录…

结合结构特征基于测试集重排序的故障诊断方法

摘要 故障诊断是集成电路领域中的重要研究方向,基于测试激励集方法求解候选故障诊断是目前较为高效的诊断方法,而GTreord是目前具有较高诊断准确性的方法.在对GTreord方法深入研究的基础上,本文依据测试激励与候选故障诊断解之间的结构特征,通过分析电路故障输出响应,提出…

Star-GAN阅读笔记

Star-GAN阅读笔记 SummaryContributionRelated WorkApproach and Model ArchitectureImplementExperimentsCode Summary 之前传统的GAN只能在两个域之间做图像转换(例如Cycle-GAN)&#xff0c;如果要在多个域之间做图像转换&#xff0c;则需要N(N-1)对生成器/鉴别器。然而Star…