• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
火磷
Memory will fade,but not notes.
博客园    首页    新随笔    联系   管理    订阅  订阅
python中list、tuple、dict、set的使用

1.list列表

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

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

1 >>> nums = ['1', '2', '3']
2 >>> nums
3 ['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 >>> nums
3 ['1', '2', '3', '4']

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

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

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

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

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

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

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

1 >>> nums[1] = '1.5'
2 >>> nums
3 ['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, tup2
6 () (1,)

一个可变的tuple:

1 >>> t = ('a', 'b', ['A', 'B'])
2 >>> t[2][0] = 'X'
3 >>> t[2][1] = 'Y'
4 >>> t
5 ('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 >>> age
3 {'tom': 13, 'jack': 14, 'jim': 15}

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

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

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

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

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

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

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

3.4添加新元素 

1 >>> age['jerry'] = 17
2 >>> age
3 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 >>> s
3 {1, 2, 3}
4 
5 >>> s1 = set('abcabc')
6 >>> s1
7 {'a', 'c', 'b'}

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

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

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

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

1 >>> s.remove(4)
2 >>> s
3 {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 myList
17 # print myList+tempList       [0,1,...,13]
18 
19 # *
20 tup3 = (2, 3)*2
21 print tup3               #(2, 3, 2, 3)

 

posted on 2017-07-04 11:41  火磷  阅读(2281)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3