一、列表

        1.创建

                可以使用中括号直接创立,也可以使用内置函数list()

lst1 = ['微软' , '苹果'] #使用中括号创建
lst2 = list(['微软' , '苹果']) #使用内置函数

        2.特点

                ①元素有序排列                       ④类型可混用

                ②索引映射唯一数据                ⑤动态分配内存

                ③可以存储重复数据

        3.查询

                使用索引函数index()来获取 (使用为:对象.index( 元素 ))

                        若查询元素不在列表中,会抛出ValueError;若有相同元素,仅返回第一个元素

lst = [1,2,3,4,5,6,7]
print(lst.index(3))

                获取指定位置的值采用:对象[索引],若超出索引会抛出IndexError

        4.切片

列表名[start : stop : step]

                如步长为负,则从start向前

                切片结果是一个新的列表

        5.元素的增删改查

                ①增

append()

末尾追加一个元素

extend()

末尾追加一个/以上的元素

insert()

在任意位置添加一个元素

切片

在任意位置至少添加一个元素

                        使用append()添加一个列表会将其视为一个列表加入表尾(使用extend()会独立添加)

                        使用切片可以仅指定start,然后赋值给追加元素

python 复合主键 python 复合列表_python

                 ②删

remove()

删除一个元素

如重复仅删除第一个

不存在会抛出VauleError

pop()

删除指定位置上的元素

不存在会抛出IndexError

默认删除最后一个元素

切片

至少删除一个元素

clear()

清空列表

del()

删除列表

new_list = lst[1:3]  #对新列表作用

lst[1:3] = []        #对原列表作用

python 复合主键 python 复合列表_指定位置_02

                 ③改

lst[3] = 'X'    #修改指定位置元素

lst[1:3] = [30,40,50]    #将指定片段替换为新元素组

        6.排序

                调用sort()方法,默认从小到大排列,指定reverse= true可以反转

                调用sorted(),不会改变原列表

python 复合主键 python 复合列表_python 复合主键_03

                 !!!,Ture 和 False不能写成 ture 和 false

                                sorted()函数不依附于对象

        7.列表生成式

[ 生成内容 for 迭代内容 in range(1,10)]

python 复合主键 python 复合列表_Python_04

 二、字典

        定义:内置数据结构之一,是一个可变序列;以键值对的方式存储,无序序列

socres = { '张三':100 , '李四':98 ,'王五':45 }

                单位元素格式:建 : 值

        1.创建

                使用花括号创建

socres = { '张三':100 , '李四':98 ,'王五':45 }

                使用内置函数dict()

student = dict( name='Ace' , age=18 )

python 复合主键 python 复合列表_Python_05

        2.获取元素

                使用 [ ]         socre['张三']                        如不存在会抛出KeyError

                使用get()      score.get('张三')                  如不存在会返回None/默认value

print( socre.get('李四') )       #如不存在会抛出None
print( socre.get('李四',99) )    #如不存在会抛出99

        3.元素的判断/删除/新增

                判断:in / not in

'Marry' not in socre

                删除:del                 清空:clear

del score['张三']
score.clear()    #清空

                新增

score['Alice'] = 90

         4.获取字典视图

                        keys()获取所有的key值

                        values()获取所有值

                        items()获取所有key.value对

                                !!!均使用复试单词(+s)

python 复合主键 python 复合列表_python_06

         5.字典遍历

for item in score:
    print(item)

python 复合主键 python 复合列表_Python_07

                 仅获取key,若需要获取value请使用[item]对象.get(item)

python 复合主键 python 复合列表_python 复合主键_08

         6.字典的特点

                ①所有元素以key-value对的形式存在,且key不允许重复

                ②元素是无序的

                ③key是不可变对象

                ④可以动态伸缩

                ⑤比较费内存(空间换时间)

        7.字典生成式

                内置函数zip():将对应元素打包生成一个元组,然后返回这些元组组成的列表

items = ['Tiga','Dyna','Gaia']
years = [96,97,98]

lst=zip(items,years)
print(list(lst))

                 字典生成式

d = {item.upper(): years for item,years in zip(items , years )}

python 复合主键 python 复合列表_python_09

三、元组

        Python内置的数据结构之一,不可变序列(没有增、删、改操作)

        1.创建

t = ('Python' , 'hello' , 90 )    #直接小括号
t = tuple( ('Python' , 'hello' , 90 ) )    #内置函数tuple()
t = (10,)    #缩写

        2.遍历

for item in t:
    print(t)

                还可以通过 [ ] 访问指定位置的元素

print(t[1])

四、集合

        内置数据结构,可变序列类型;是没有value的字典

        1.创建

s = {'Python' , 'hello' , 90}    #直接使用 { } 
s = set( range(6) )     #实用set函数
s = set( [1,2,3,4] )    #元素要使用 [ ]/{ } /( )包裹,不然会报错,使用[ ]将不允许重复元素
                        #使用( )时元素是无序的
s = set()               #空集合

python 复合主键 python 复合列表_指定位置_10

         2.集合操作

                判断:in / not in

print( 100 in t)

                新增:add()一次一个

s.add(80)

                           update()一次至少一个

s.update((100,200,300))    #需要使用[]/{}/()包裹元素

                删除:remove()一次删除一个指定元素,不存在抛出异常

                           discard()一次删除一个指定元素,不存在也不抛出异常

s.remove(elem)     #elem必须存在
s.discard(elem)    #elem可以不存在

                            pop()删除第一元素

s.pop()

                            clear()清空集合

s.clear()

python 复合主键 python 复合列表_python_11

         3.集合间关系

                是否相等 == / != 

                是否子集issubset

                是否超集issuperset

                有无交集isdisjoint

s1 == s2
s1.issubset(s2)
s1.issuperset(s2)
s1.isdisjoint(s2)

         4.集合间操作

python 复合主键 python 复合列表_内置函数_12

s1.intersection(s2)    #交集
s1 & s2                #交集

s1.union(s2)           #并集
s1 | s2                #并集
""交集和并集并不影响原集合""

s1.difference(s2)      #差集
s1 - s2                #差集
s1.symmetric_difference(s1)    #对称差集

        5.集合生成式

{ i*i for i in range(10)}

五、小结

python 复合主键 python 复合列表_指定位置_13