博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中list、tuple、dict、set的使用
阅读量:4329 次
发布时间:2019-06-06

本文共 3433 字,大约阅读时间需要 11 分钟。

1.list列表

list是一种可变的有序的列表,可以随时添加和删除其中的元素。

其格式如下:list-name=[element1,element2,....]

1 >>> nums = ['1', '2', '3']2 >>> nums3 ['1', '2', '3']

注:若为nums=[ ],则表示空!

1.1获取list元素的个数:len(list-name)

1 >>> len(nums)2 3

1.2通过索引访问元素(索引从0开始,倒着数从-1开始)

1 >>>nums[0]2 '1'3 4 >>>nums[-2]5 '2'

1.3添加元素

1.3.1在末尾添加元素:list-name.append(value)

1 >>> nums.append('4')2 >>> nums3 ['1', '2', '3', '4']

1.3.2在指定位置添加元素:list-name.insert(索引,value)

1 >>> nums.insert(1, '1.5')2 >>> nums3 ['1', '1.5', '2, '3', '4']

1.4删除末尾的元素:list-name.pop()

1 >>> nums.pop()2 >>> nums3 ['1', '1.5', '2, '3']

1.5删除指定位置的元素:list-name.pop(索引)

1 >>> nums.pop(1)2 >>> nums3 ['1', '2, '3']

1.6替换元素:list-name[索引]=value

1 >>> nums[1] = '1.5'2 >>> nums3 ['1', '1.5', '3']

1.7元素类型可以不一致,并且可以嵌套

1 >>> p = ['1', '2']2 >>> s = ['a', 'b', p, 'c'] 

 

2.tuple元组

tuple和list非常类似,但是tuple一旦初始化就不能修改

其格式如下:tuple-name=(element1,element2,...)

1 # 空元组2 >>>tup1 = ()3 # 单个元素需要增加一个‘,’4 >>>tup2 = (1,)5 >>>print tup1, tup26 () (1,)

一个可变的tuple:

1 >>> t = ('a', 'b', ['A', 'B'])2 >>> t[2][0] = 'X'3 >>> t[2][1] = 'Y'4 >>> t5 ('a', 'b', ['X', 'Y'])

注:这里嵌套了list列表,由于改变的是list中元素,与tuple无关.

 

3.dict字典

dict全称dictionary(字典),在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

dict的key必须是不可变对象。

在Python中,字符串、整数等都是不可变的,可以用作key。

其格式如下:dict-name={key1:value1, key2:value2, ...}

1 >>> age = {
'tom': 13, 'jack': 14, 'jim': 15}2 >>> age3 {
'tom': 13, 'jack': 14, 'jim': 15}

3.1查看元素: dict-name[key] / dict-name.get(key)

1 #方式一2 >>>age['Tom']3 134 #方式二5 >>>age.get('Tom')6 13

注:当key不存在时,方式一将报错;方式二则返回值none.

3.2更新元素:dict-name[key]=value

1 >>> age['tom'] = 102 >>> age.get('tom')3 10

3.3删除元素:dict-name.pop(key) / del dict-name[key]

1 >>> age.pop('tom')2 >>> age3 {
'jack': 14, 'jim': 15}

3.4添加新元素 

1 >>> age['jerry'] = 172 >>> age3 age = { 'jack': 14, 'jim': 15, 'jerry': 17}

python字典内置了一下函数和方法:

 

 

 

4.set集合

set和dict类似,它是一组存储key无序的集合,且不存储value;由于key不能重复,所以在set中重复的key

创建一个set,需要提供一个list,或者提供一个字符串

其格式如下:set-name=set( [list] / str )

1 >>> s = set([1, 1, 2, 2, 3, 3])2 >>> s3 {1, 2, 3}4 5 >>> s1 = set('abcabc')6 >>> s17 {
'a', 'c', 'b'}

4.1添加元素:set-name.add(key) / set-name.update(seq)

1 >>> s.add(4)2 >>> s3 {1, 2, 3, 4}
1 >>>set1 = set(['1', '2', '3'])2 >>>set2 = set('345')3 >>>set1.update(set2)4 >>>set15 {
'1', '3', '2', '5', '4'}

4.2 移除元素:set-name.remove(key) / setname.pop()

注:pop()会删除任意一个对象

1 >>> s.remove(4)2 >>> s3 {1, 2, 3}

 4.3操作符:|,&,-,^

1 set1 = set(['1', '2', '3']) 2 set2 = set('345') 3 # 并集union() 4 print set1 | set2 5 # 交集intersection() 6 print set1 & set2 7 # 补差difference() 8 print set1 - set2   # {'1', '2'} 9 # 对称拆分symmetric_difference()10 print set1 ^ set2   # 没有'3'

 

5.切片

当我们需要取list或者tuple中一块内容时,使用循环遍历取值十分麻烦,为此python提供了切片功能。

格式如下:list-name[索引1:索引2 : 步长]

注:从索引1开始,到索引2结束,但是不包含索引2. 步长为索取元素之间的间隔.

现有list列表如下: L=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

当取索引为0-2的元素时,可以使用L[0:3].

当有一个索引为0或-1还可以省略,例如L[:3]L[-2:]L[:].

当取索引为6-8的元素时,可以使用L[-4:-1].

当取第1,3,5个元素时,可以使用L[0:5:2].

注:对于tuple的操作,同样适用上述规则.

另外,字符串也可以看成一个list,此时一个字符看成一个元素,操作结果仍然是字符串。

1 >>> 'ABCDEFG'[:3]2 'ABC'

 

6.其他操作符

 使用+,×,in&not in对列表、元组等进行运算.

1 myList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2  3 #in & not in  4 for i in myList: 5     print i 6  7 i = 6 8 if i not in myList: 9     print 'not in'10 else:11     print 'in'12 13 # +14 tempList = [10, 11, 12, 13]15 # myList.extend(tempList)16 # print myList17 # print myList+tempList       [0,1,...,13]18 19 # *20 tup3 = (2, 3)*221 print tup3               #(2, 3, 2, 3)

 

转载于:https://www.cnblogs.com/jfl-xx/p/7115854.html

你可能感兴趣的文章
null?对象?异常?到底应该如何返回错误信息
查看>>
django登录验证码操作
查看>>
(简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
查看>>
图论知识,博客
查看>>
[原创]一篇无关技术的小日记(仅作暂存)
查看>>
20145303刘俊谦 Exp7 网络欺诈技术防范
查看>>
原生和jQuery的ajax用法
查看>>
iOS开发播放文本
查看>>
20145202马超《java》实验5
查看>>
JQuery 事件
查看>>
main(argc,argv[])
查看>>
在线教育工具—白板系统的迭代1——bug监控排查
查看>>
121. Best Time to Buy and Sell Stock
查看>>
hdu 1005 根据递推公式构造矩阵 ( 矩阵快速幂)
查看>>
安装php扩展
查看>>
百度移动搜索主要有如下几类结果构成
查看>>
Python爬虫面试题170道:2019版【1】
查看>>
JavaBean规范
查看>>
第四阶段 15_Linux tomcat安装与配置
查看>>
NAS 创建大文件
查看>>