python列表、元组、字典

发布时间:2019-06-26 09:43:08编辑:auto阅读(1287)

    1.列表

    列表是由一序列特定顺序排列的元素组成的。可以把字符串,数字,字典等都可以任何东西加入到列表中,列表中的元素之间没有任何关系。列表也是自带下标的,默认也还是从0开始。列表常用方括号表示,即:[],元素用逗号隔开。

    例子:

    a = ["huangzhenping","laoma",123]

    print(a)

    print(type(a))



    说明:list 里面的元素的数据类型也可以不同;list 元素也可以是另一个 list,例:

    list2 = ['python', 'java', ['asp', 'php'], 'scheme']


    常用功能:

    append:追加

    例子:

    a = ["huangzhenping","laoma","laozhao"]

    print(a)

    a.append("song")

    print(a)


    index:返回下标位置

    a = ["huangzhenping","laoma","laozhao"]

    print(a[0],a[2])

    print(a.index("laoma"))



    insert:往什么位置插入对象

    a = ["huangzhenping","laoma","laozhao"]

    a.insert(1,"song")

    print(a)


    pop:删除末尾元素

    a = ["huangzhenping","laoma","laozhao"]

    a.pop()

    print(a)


    remove:自定义删除

    a = ["huangzhenping","laoma","laozhao"]

    a.remove("huangzhenping")

    print(a)


    sort:排序(升序)

    a = [1,3,6,7,4]

    a.sort()

    print(a)


    reverse:反序

    a = [1,3,6,7,4]

    a.reverse()

    print(a)


    切片:(从1至5,2为步长)

    a = [1,2,3,4,5,6,7,8,9,10]

    print(a[0:4:2])



    2.元组

    tuple 和 list 非常类似,但是 tuple 一旦初始化就不能修改,tuple唯一和list定义的区别就是[]变成了(),它也没有 append(),insert()这样的方法

    例子:

    a = "abcdefghijkmn"

    print(tuple(a))

    print(type(tuple(a)))


    注:有逗号时,为元组类型

    例子:

    a = ("hello")

    print(a)

    print(type(a))

    b = ("hello",)

    print(b)

    print(type(b))

    结果:

    hello

    <type 'str'>

    ('hello',)

    <type 'tuple'>


    tuple常用方法:


    count:统计元组中相同元素的个数

    a = ("a","b","c","a")

    print(a.count("a"))


    index:元组中某元素第一次出现的下标

    a = ("a","b","c","d")

    print(a.index("d"))



    3.字典

    字典是由花括号{}来包含其数据的,花括号内包含键(key)和其对应的值(value),一对键和值成为一个项,键和值用冒号:隔开,项和项之间用逗号,隔开,空字典就是不包含任何项的字典,也可理解为空字典就是花括号内不包含任何内容,直接使用花括号{}表示.


    字典赋值有三种方式:

    例子:

    a = {'name': 'huang', 'age': '20'}

    b = dict(name="huang", age=20)

    c=dict([('name', 'huang'), ('age', 20)])   #序列中也是一个序列或元组

    print(type(a))

    print(type(b))

    print(type(c))


    结果:

    <type 'dict'>

    <type 'dict'>

    <type 'dict'>



    例子:

    a = dict(name="li",age=28)

    print(a)

    print(type(a))


    说明:避免 key 不存在的错误的两种办法:

    一是通过 in 判断 key 是否存在:

    'Thomas' in dict1   #


    二是通过 dict 提供的 get 方法

    如果 key 不存在,可以返回 None(无结果)


    自动识别为dict类型,把等于号和逗号看成冒号

    例子:

    a = dict({("name","li"),("age",28)})

    print(b)

    print(type(b))



    字典常用功能:

    clear:清空字典

    copy:复制

    get:获取信息,没有则返回为空


    例子:

    a = {"name":"li","age":28}

    print(a.get("name"))



    setdefault:存在则不变,不存在则设置一个值

    例子:

    a = {"name":"li","age":28}

    print(a.setdefault("name","huangzhenping"))

    print(a.setdefault("address","shenzhen"))

    print(a)



    keys:获取所有键(对象)

    例子:

    a = {"name":"li","age":28}

    print(a.keys())


    values:获取所有对象的值

    例子:

    a = {"name":"li","age":28}

    print(a.values())


    iteritems:一般用于for循环,一个一个取出来(避免占内存)

    例子:

    a = {"name":"li","age":28}

    print(a.iteritems())

    for x,y in a.iteritems():

       print(x,y)


    pop:删除对象key,实际上对应的值没有被删

    例子:

    a = {"name":"li","age":28}

    a.pop("name")

    print(a)


    字典的高级操作

    fromkeys:将一个列表引入字典中,并设置一个默认值

    例子:

    list1=["a","b","c"]

    dict1={}

    n=dict.fromkeys(list1,"test")

    print(n)

    print(type(n))


    zip:将两个列表叠加成一个列表,如果要变成字典,则dict(zip(l1,l2))

    list1=["a","b","c"]

    list2=["d","e","f"]

    list3=zip(list1,list2)

    print(list3)

    print(type(list3))

    print(dict(list3))


    update:将dirct_test字典和k字典合并

    dict1={"a":"zhang","b":"huang"}

    dict2={"c":"zhao","d":"sun"}

    dict1.update(dict2)

    print(dict1)


    sorted:对字典排序, lambda是一个匿名函数,reverse = False 升序

    dict1=dict(a=1,c=3,d=4,b=2,e=5)

    print(dict1)

    print sorted(dict1.iteritems())

    print sorted(dict1.iteritems(),key = lambda d:d[1], reverse = False)




    4.set集合

    set 和 dict 类似,也是一组 key 的集合,但不存储 value。由于 key 不能重复,所以,在 set 中,没有重复的 (key重复元素在 set 中自动被过滤)


    add(key)方法可以添加元素到 set 中

    例子:

    s = set([1, 1, 2, 2, 3, 3])

    s.add(4)


    remove(key)方法可以删除元素

    例子:

    s.remove(4)


    说明:set 可以看成数学意义上的无序和无重复元素的集合,因此,两个 set 可以做数学意义上的 交集、并集等操作




    5.帮助

    查看数据类型:print(type(variable))

    查看属性:dir(variable)

    查看帮助:help(sorted)

    看具体源码: Ctrl + 鼠标左键



    6. 变量的强制转换

    例子:

    list1作为keylist2作为value,生成一个新的字典

    a = [1,2,3,4,5,6,7]

    b = ['a','b','c','d','e','f','g']

    dict(zip(a,b))


    例子:

    两个字典的合并

    dict1={1:[1,11,111],2:[2,22,222]}

    dict2={3:[3,33,333],4:[4,44,444]}


    dictMerged1=dict(dict1.items()+dict2.items())

    dictMerged2=dict(dict1, **dict2)




关键字