001、Python数据结构

#! usr/bin/env python
# _*_ coding:utf-8 _*_

from random import randint


'''
一、list的增删改查
    1、list.append(x):把一个元素添加到列表的结尾。
    2、list.extend(L):将一个给定列表中的所有元素都添加到另一个列表中。
    3、list.insert(i, x):在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前。
    4、list.remove(x):删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
    5、list.pop([i]):从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop() 返回最后一个元素。
        元素随即从列表中被删除(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在Python 库参考手册中遇到这样的标记)。
    6、list.clear():从列表中删除所有元素。相当于 del a[:]。
    7、list.index(x):返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
    8、list.count(x):返回 x 在列表中出现的次数。
    9、list.sort():对列表中的元素就地进行排序。
    10、list.reverse():就地倒排列表中的元素。
    11、list.copy():返回列表的一个浅拷贝。等同于 a[:]。



    12、列表推导式:squares = [x**2 for x in range(10)]
    列表推导式由包含一个表达式的括号组成,表达式后面跟随一个 for 子句,之后可以有零或多个 for 或 if 子句。
    结果是一个列表,由表达式依据其后面的 for 和 if 子句上下文计算而来的结果构成。

    例如,如下的列表推导式结合两个列表的元素,如果元素之间不相等的话:

    >>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
    [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
'''


list1 = []
list1.append(10)
list1.append(20)

list2 = ['a','b','a','c']
list1.extend(list2)
list1.insert(1,8)
print(list1.index('a'))
print(list1.count('a'))
list2.sort()
list1.reverse()
print(list1.pop(-2))
print(list1)
print(list2)
print(list1)




list3 = [x**2 for x in range(10)]
print(list3)

list4 = [(x,y) for x in [1,2,3] for y in [3,1,4] if x != y]
print(list4)


'''
二、元组
    1、t = 12345, 54321, 'hello!' 是 元组封装 (tuple packing)的一个例子:值 12345 , 54321 和 'hello!' 被封装进元组。
        其逆操作可能是这样:
        >>> x, y, z = t

三、集合
    1、Python 还包含了一个数据类型 —— set (集合)。集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。
    集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。

    大括号或 set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {}。后者用于创建空字典

四、字符串、列表、元组、字典之间转换
'''

t = 1245,45322,'hello'
print(t)


basket = {'apple','orange','pear','banana','apple','orange'}
print(basket)
print('orange' in basket)
print('sfdsf' in basket)


a = set('abracadabra')
print(a)
运行结果:{'c', 'b', 'a', 'd', 'r'} b
= set('alacazam') c = set(['cat','dog','animal','fish','dog']) #交集 print(a & b) #并集 print(a | b) #差集letters in a but not in b print(a - b) #异或 letters in a or b but not both print(a ^ b) #集合推导式,类似于列表推导式 a = {x for x in 'abdgfdg' if x not in 'abc'} print(a) ''' 一、字典 对一个字典执行 list(d.keys()) 将返回一个字典中所有关键字组成的无序列表(如果你想要排序,只需使用 sorted(d.keys()) )。 [2] 使用 in 关键字(指Python语法)可以检查字典中是否存在某个关键字(指字典)。 dict() 构造函数可以直接从 key-value 对中创建字典: ''' tel = {} tel['jack'] = 4098 tel['yuehan'] = 9527 print(tel) listDict1 = [('name','旺旺'),('age',18),('sex','man')] print(listDict1) a = dict(listDict1) print(sorted(a.keys())) print(dict(sape=4139, guido=4127, jack=4098)) #字典推导式 dict1 = {x:x**2 for x in range(10)} print(dict1) ''' 一、循环技巧 1、enumerate():在序列中循环时,索引位置和对应值可以使用 enumerate() 函数同时得到 2、zip():同时循环两个或更多的序列,可以使用 zip() 整体打包: 3、reversed(): 4、sorted(): sort是容器的函数:sort(cmp=None, key=None, reverse=False) sorted是python的内建函数:sorted(iterable, cmp=None, key=None, reverse=False) 5、format():格式化函数 ''' #字典循环中,关键字和对应的值可以使用item()方法同时解读出来 knights = {'name':'旺旺','age':18,'sex':'man'} for k,v in knights.items(): print(k,v) for k,v in enumerate(['test','document','java','script']): print(k,v) questions = ['name', 'quest', 'favorite color'] answers = ['lancelot', 'the holy grail', 'blue'] for q,a in zip(questions,answers): print('What is your {0}? It is {1}.'.format(q,a)) for i in reversed(range(1,10,2)): print(i) for i in sorted(range(1,10,2),reverse=True): print(i) words = ['cat', 'window', 'defenestrate'] for w in words[:]: if len(w) > 6: words.insert(0,w) print(words)

 

posted @ 2018-01-29 14:35  我是旺旺  阅读(193)  评论(0编辑  收藏  举报