zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    GZIPInputStream 流未关闭引起的内存泄漏问题
    Java ExcutorService优雅关闭方式
    redis pipline
    LeetCode 30与所有单词相关联的字串
    Scala不使用null 而使用Option,None,Some的好处
    记录: 一次解决整型溢出攻击(使用scala,隐式转换)
    Scala 封装可break和continue的foreach循环
    记录: 百度webuploader 分片文件上传java服务器端(spring mvc)示例的优化
    HBase shell 中的十六进制数值表示
    关于getSystemResource, getResource 的总结
  • 原文地址:https://www.cnblogs.com/jfl-xx/p/7115854.html
Copyright © 2011-2022 走看看