python中的list、tuple和dictionary
列表
列表是python中最基本的数据结构之一,并且列表的数据项不需要具有相同的数据类型,创建一个列表,只需把逗号分隔的不同数据项使用方括号括起来即可。具体的定义式如下:
list=['变量1','变量2','变量3'......] #变量可以是字符串也可以是数字,是数字时可以直接去掉引号
我们在使用列表时可以对列表进行增(append)、删(remove、del、pop)、索引(index)、倒转(reverse)、拼接(extend)、清空(clear)、插入(insert)、复制(copy)、统计元素次数(count)等操作。
增(append)
list=['Alex','Leigou','Rock',1,2,3]
list.append('Sheer')
print(list)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
['Alex', 'Leigou', 'Rock', 1, 2, 3, 'Sheer']
注:成功将字符串'Sheer'插入到列表中
删(remove、del、pop)
删除时可以根据条件的不同选择remove、del或pop中的任意一个,具体事例如下:
remove()可以删除括号内指定的字符或字符串,但是无法根据列表中的下标进行删除操作,具体如下:
list=['Alex','Leigou','Rock',1,2,3]
list.remove('Leigou')
print(list)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
['Alex', 'Rock', 1, 2, 3]
Del()可以根据列表中的下标位完成删除工作,具体事例如下:
list=['Alex','Leigou','Rock',1,2,3]
del list[4]
print(list)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
['Alex', 'Leigou', 'Rock', 1, 3]
pop()也是根据括号中的下标位完成删除操作的,当括号内没有写下标位时会自动默认删除列表中的最后一个元素,具体事例如下所示:
包含下标位:
list=['Alex','Leigou','Rock',1,2,3]
list.pop(2)
print(list)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
['Alex', 'Leigou', 1, 2, 3]
不包含下标位:
list=['Alex','Leigou','Rock',1,2,3]
list.pop()
print(list)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
['Alex', 'Leigou', 'Rock', 1, 2]
索引(index)
索引(index)通过索引列表中的字符或字符串,可以查找对应的下标,具体实例如下:
list=['Alex','Leigou','Rock',1,2,3]
print(list.index('Leigou'))
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
1
插入(insert)
插入(insert)可以在指定的下标位处插入想要插入的元素,具体实例如下:
list=['Alex','Leigou','Rock',1,2,3]
list.insert(2,'Sheer')
print(list)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
['Alex', 'Leigou', 'Sheer', 'Rock', 1, 2, 3]
统计元素次数(count)
统计元素次数(count)可以统计列表中某个元素出现的次数,具体实例如下:
list=['l','h','l','g','f','l']
print(list.count("l"))
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
3
拼接(extend)
拼接(extend)可以将两个列表
list=['Alex','Leigou','Rock',1,2,3]
list1=[4,5,6,7]
list.extend(list1)
print(list)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
['Alex', 'Leigou', 'Rock', 1, 2, 3, 4, 5, 6, 7]
倒转(reverse)
倒转(reverse)主要实现列表从前往后的反转,具体实例如下:
list=['Alex','Leigou','Rock',1,2,3]
list.reverse()
print(list)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
[3, 2, 1, 'Rock', 'Leigou', 'Alex']
清空(clear)
清空(clear)主要是将列表中的元素清空,但仍然保留列表,即列表依然存在只是里面不在具有任何元素,具体实例如下:
list=['Alex','Leigou','Rock',1,2,3]
list.clear()
print(list)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
[]
复制(copy)
复制(copy)主要的功能是实现列表的复制,具体实例如下:
list=['Alex','Leigou','Rock',1,2,3]
list1=list.copy()
print(list)
print(list1)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
['Alex', 'Leigou', 'Rock', 1, 2, 3]
['Alex', 'Leigou', 'Rock', 1, 2, 3]
元祖(tuple)
Pyhton中的元祖与列表类似,不同之处在于元祖使用小括号,列表使用中括号;元祖的元不能进行修改,相较于列表,元祖的可操作空间比较小,只有两个方法,即count和index。
元祖的索引(index)方法如下:
names=('Alex','Leigou','Rock') #下标位是从0开始的
print(names.index("Leigou"))
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
1
注:主要用于查找元素的下标位
元祖下标位的使用方法:
names=('Alex','Leigou','Rock') #下标位是从0开始的
nums=(1,2,3,4,5)
print("names[1]:",names[1])
print("nums[1:3]:",nums[1:3]) #对nums进行截取切片
print("nums:",nums[:])#打印所有的元祖元素可以使用nums[:]
运行结果:
D:\Anaconda3\python.exe
D:/PycharmProjects/pythonz/day2/z.py
names[1]:
Leigou
nums[1:3]:
(2, 3)
nums:
(1, 2, 3, 4, 5)
元祖无法进行修改,但是可以进行连接组合,具体程序如下:
names=('Alex','Leigou','Rock') #下标位是从0开始的
nums=(1,2,3,4,5)
print("names+nums:",names+nums)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
names+nums: ('Alex', 'Leigou', 'Rock', 1, 2, 3, 4, 5)
元祖无法进行删除内部元素的操作,但是可以删除整个元祖,具体程序如下:
names=('Alex','Leigou','Rock') #下标位是从0开始的
print(names)
del names
print(names)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
Traceback (most recent call last):
('Alex', 'Leigou', 'Rock')
File "D:/PycharmProjects/pythonz/day2/z.py", line 11, in <module>
print(names)
NameError: name 'names' is not defined
注:删除前可以打印出names,但是当用del删除names后再打印names时以报错说names没有定义
元祖的count方法如下:
names=('Alex','Leigou','Rock',1,2,1,1) #下标位是从0开始的
print(names.count(1))
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
3
注:主要用于统计某个字符的个数,更加直观的例子如下:
str=("ldlasledlf")
print(str.count("l"))
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/z.py
4
字典(Dictionary)
字典(Dictionary)是另一种可变容器类型,且可存储任意类型对象。字典的没个键值key=>value对用冒号(:)分隔每个键值用逗号(,)分隔,整个字典包含在花括号中,格式如下所示:
d={key1:value1,key2:value2}
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一,实例如下:
dict={'Name':'Leigou','age':'24','sex':'Boy'}
print("Name:",dict['Name'])
print('age:',dict['age'])
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/1.py
Name: Leigou
age: 24
向子典添加新内容的方法是增加新的键/值,修改或删除已有键/值对实例如下:
dict={'Name':'Leigou','age':'24','sex':'Boy'}
dict['num']='201822362014236' #添加新的键值对
dict['sex']='girl' #修改性别信息
print(dict)
print('sex:',dict['sex'])
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/1.py
{'Name': 'Leigou', 'age': '24', 'sex': 'girl', 'num': '201822362014236'}
sex: girl
字典里的元素能进行单一的删除也能清空字典,显示删除一个字典键值用del命令,清空字典用clear命令。
删除键值(del)
dict={'Name':'Leigou','age':'24','sex':'Boy'}
del dict['sex'] #删除字典中sex的键值
print(dict)
print('sex:',dict['sex'])
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/1.py
{'Name': 'Leigou', 'age': '24'}
Traceback (most recent call last):
File "D:/PycharmProjects/pythonz/1.py", line 4, in <module>
print('sex:',dict['sex'])
KeyError: 'sex'
注:将sex的键值删除以后打印结果显示字典中已无sex的键值,并且再单独输出sex的值时系统将报错。
清空字典(clear)
dict={'Name':'Leigou','age':'24','sex':'Boy'}
dict.clear() #删除字典中sex的键值
print(dict)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/1.py
{}
注:清空字典并非删除整个字典,而是将字典中的元素清空,清空后我们仍然可以在字典中添加新的键值。
小拓展:字典的循环可以用以下两种for循环语句,实例如下:
info={
'stu1101':'Jinlei',
'stu1102':'Xule',
'stu1103':'Chunchao',
}
for i in info : #字典循环方法1
print(i,info[i])
print("="*30)
for k,v in info.items() :#字典循环方法2
print(k,v)
运行结果:
D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day2/dictionary.py
stu1101 Jinlei
stu1102 Xule
stu1103 Chunchao
==============================
stu1101 Jinlei
stu1102 Xule
stu1103 Chunchao
注:由上可见两种方法的运行结果相同
python中的list、tuple和dictionary的更多相关文章
- Python中的List,Tuple,Dic,Set
Python中的List,Tuple,Dic,Set List定义 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推 ...
- Python中的list,tuple,dict和set
List list的创建与检索 Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 构造list非常简单,直接用 [ ] 把list的所有元素都括 ...
- python中list、tuple、dict、set的使用
1.list列表 list是一种可变的,有序的列表,可以随时添加和删除其中的元素. 其格式如下:list-name=[element1,element2,....] >>> nums ...
- 如何将python中的List转化成dictionary
问题1:如何将一个list转化成一个dictionary? 问题描述:比如在python中我有一个如下的list,其中奇数位置对应字典的key,偶数位置为相应的value list : ['品牌', ...
- python中的list,tuple,dict,set简介---陈雨童
变量和对象 变量把对象和自己连接起来(指针连接对象空间),引用建立了变量和对象之间的映射关系,这就是引用.引用完成,就实现了赋值.变量通过对象的内存地址指向对象,类似于软链接 将变量a赋值给变量b,其 ...
- Python中List和Tuple类型
a = 'python' print('hello,', a or 'world') b = '' print ('hello,', b or 'world') print('------------ ...
- python 中元祖tuple的使用
Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. eg, tup1 = (1, 2, 3 ...
- python 中的list&tuple
list Python内置的一种数据类型是列表:list>>> classmates = ['Michael', 'Bob', 'Tracy']>>> classm ...
- python中元组(tuple)的用法
t=(1,2,3) t=() t=(1,)#元组中只有一个值,需在值后面加上,不然会当int型识别 te.count(1) te.index(2) te[::-1]#关于切片跟列表一样的 tuple的 ...
- Python中的元组(tuple)、列表(list)、字典(dict)
-------------------------------更新中-------------------------------------- 元组(tuple): 元组常用小括号表示,即:(),元 ...
随机推荐
- bryce1010专题训练——Splay树
Prob Hint BZOJ 3323 文艺平衡树 区间翻转 BZOJ 1251 序列终结者 区间翻转,询问最值 BZOJ 1895 supermemo 区间加,翻转,剪切,询问最值.点插入,删除. ...
- 15 使用lambdas和闭包
1 使用lambdas和闭包 1.1 定义闭包 闭包是一个代码块,代替了方法或类. groovy中的闭包基于后边的构造方式:{list of parameters-> closur ...
- CSS div和css布局
一.div和span DIV和SPAN在整个HTML标记中,没有任何意义,他们的存在就是为了应用CSS样式 DIV和span的区别在于,span是内联元素,div是块级元素.div占用整行,span只 ...
- 103 Binary Tree Zigzag Level Order Traversal 二叉树的锯齿形层次遍历
给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行).例如:给定二叉树 [3,9,20,null,null,15,7], 3 ...
- Linux--NiaoGe-Service-04
操作系统版本:CentOS 6.10 x86_64 查看内核所获取到的网卡信息 [root@xueji ~]# dmesg | grep -in eth :e1000 ::-bit) :0c::6b: ...
- Unity Shader入门精要学习笔记 - 第12章 屏幕后处理效果
建立一个基本的屏幕后处理脚本系统 屏幕后处理,顾名思义,通常指的是在渲染完整个场景得到屏幕图像后,再对这个图像进行一系列操作,实现各种屏幕特效.使用这种技术,可以为游戏画面添加更多艺术效果,例如景深. ...
- 前端开发神器 - Brackets
做了几年的 .Net 项目开发,后来公司转 Java 语言开发,Java 做了还没一年,公司准备前后端分离开发,而我被分到前端! Brackets是一款基于web(html+css+js)开发的web ...
- 进程间通信,把字符串指针作为参数通过SendMessage传递给另一个进程,不起作用
参数发送进程: CString csCmd=AfxGetApp()->m_lpCmdLine; if (!csCmd.IsEmpty()) { pWndPrev->SendMessage( ...
- (转)ASIC设计中各个阶段需要注意的问题——节选
ASIC 的复杂性不断提高,同时工艺在不断地改进,如何在较短的时间内开发一个稳定的可重用的ASIC芯片的设计,并且一次性流片成功,这需要一个成熟的ASIC 的设计方法和开发流程.本文结合NCveril ...
- CentOS 6.5 下,phpmyadmin 建库无权限
阿里云主机.用root进入phpMyadmin,居然没有权限建库. 上网查到命令: grant all privileges on *.* to root@'%' identified by &quo ...