基本数据类型及内置方法2

一、列表

  1、基本方法

    用途:

      用于存一个或者多个不同类型的值

    定义方法

      通过中括号存值,每个值之间通过逗号进行分隔

      s1 = ['a','b',1,'cd']

    内置方法:

      ①索引取值

# 索引取值
>>> l1 = [1,2,3,4,5]
>>> l1[2]
3
# 索引切片
>>> l1[1:4]
[2, 3, 4]

      ②append():追加,只能添加到列表的最后一位,一次性只能添加一个值

>>> l1 = [1,2,3,4,5]
>>> l1.append(1000)
>>> l1
[1, 2, 3, 4, 5, 1000]
>>> l1.append([9,0])
>>> l1
[1, 2, 3, 4, 5, 1000, [9, 0]]

      ③insert():插入值,通过索引指定插入的位置

>>> l1 = [1,2,3,4,5]
>>> l1.insert(3,99)
>>> l1
[1, 2, 3, 99, 4, 5]

      ④extend():追加多个值

>>> l1 = [1,2,3,4,5]
>>> l1.extend([6,7,8])
>>> l1
[1, 2, 3, 4, 5, 6, 7, 8]

      ⑤remove():指定删除,若后面有相同的,则从左到右删除第一个

>>> l1 = [1,2,3,1,4,5]
>>> l1.remove(1)
>>> l1
[2, 3, 1, 4, 5]

      ⑥pop():默认从最后开始删除,指定索引删除,pop是有返回值,返回删除的元素

>>> l1 = [1,2,3,1,4,5]
>>> l1.pop()
5
>>> l1
[1, 2, 3, 1, 4]
>>> l1.pop(1)
2
>>> l1
[1, 3, 1, 4]

      ⑦del:清除

>>> l1 = [1,2,3,1,4,5]
>>> del l1[2]
>>> l1
[1, 2, 1, 4, 5]

      ⑧count():统计列表中指定元素个数

>>> l1 = [1,2,3,1,4,5]
>>> l1.count(1)
2

      ⑨index():获取指定元素的索引值,还可以在指定范围内查找

>>> l1 = [1,2,3,1,4,5]
>>> l1.index(3)
2
>>> l1.index(1,1,5)  # 在[2,3,1,4,5]中查1所在索引
3

      ⑩sort():排序,在原列表上进行排序(默认从小到大 ,当输入参数reverse = True,从大到小排序),原列表被修改

>>> l1 = [4,5,1,7,4,8,3,9]
>>> l1.sort()
>>> l1
[1, 3, 4, 4, 5, 7, 8, 9]
>>> l1.sort(reverse = True)
>>> l1
[9, 8, 7, 5, 4, 4, 3, 1]

# sorted():排序时候生成新列表,原列表不变
>>> l1 = [4,5,1,7,8,3,9]
>>> sorted(l1)
[1, 3, 4, 5, 7, 8, 9]
>>> l1
[4, 5, 1, 7, 8, 3, 9]

      ⑾clear():清空数据

>>> l1 = [4,5,1,7,8,3,9]
>>> l1.clear()
>>> l1
[]

      队列:先进先出

l1 = []
l1.append(1)
l1.append(2)
l1.append(3)
l1.append(4)
print(l1)
for i in range(len(l1)):
    print(l1.pop(0))
    print(l1)

      堆栈:先进后出

l1 = []
l1.append(1)
l1.append(2)
l1.append(3)
l1.append(4)
print(l1)
for i in range(len(l1)):
    print(l1.pop())
    print(l1)

2、类型总结:

    有序or无序(有索引的都是有序的):

      列表类型有序

    可变or不可变:

      值改变id不变就是可变类型,值改变id也变就是不可变类型

      列表类型是可变类型

    存一个值or多值:

      列表可以存多个值

二、元组

  1、基本方法:

    用途:

      存储多个不同类型的值(不能存可变类型)

    定义方法

      用小括号存储数据,数据与数据之间通过逗号分隔,(值不能被改变)

      t1 = ('a','b','c')

      # 定义容器类型的时候,如果里面只有一个值,在值的后面加上一个逗号*****
      # 在元组中如果不加,就是字符串

    内置方法:

      ①索引取值

>>> t1 = ('a','b','c')
>>> t1[0]
'a'
>>> t1[0:2]
('a', 'b')

      ②成员运算in、not in

      ③len()

      ④count()

      ⑤index()

2、类型总结:

    有序or无序(有索引的都是有序的):

      元组类型有序

    可变or不可变:

      值改变id不变就是可变类型,值改变id也变就是不可变类型

      元组类型是不可变类型

    存一个值or多值:

      元组可以存多个值

三、字典

1、基本方法:

    用途:

      存储多个不同类型的值

    定义方法

      通过大括号来存储数据,通过key:value来定义键值对数据,每个键值对中间通过逗号分隔

      d1 = {'name':'abc','age':18}

      d2 = dict({'name':'egon'})

      zip :

l1 = ['name',"age"]
l2 = ['egon',18]
z1 = zip(l1,l2)
print(dict(z1))

 

      # key:一定是一个不可变类型
      # value:可以是任意类型

    内置方法:

      ①按照key:value映射关系取值(可存可取)

>>> d1 = {'name':'abc','age':18}

#
>>> d1['name']
'abc'

#
>>> d1['name'] = 'a'
>>> d1
{'name': 'a', 'age': 18}

#
>>> d1['gender'] = 'male'
>>> d1
{'name': 'a', 'age': 18, 'gender': 'male'}

      ②成员运算in、not in:默认判断key值

      ③get:获取指定key值,如果不存在,默认返回None,可以通过第二个参数修改返回内容

>>> d1 = {'name':'abc','age':18}
>>> d1.get('name')
'abc'
>>> d1.get('a')
None
>>> d1.get('a','*')
'*'

      ④keys、values、items

>>> d1 = {'name':'abc','age':18}
>>> d1.keys()
dict_keys(['name', 'age'])    # 返回所有key值
>>> d1.values()
dict_values(['abc', 18])        # 返回所有value值
>>> d1.items()
dict_items([('name', 'abc'), ('age', 18)])    # 返回所有键值对,返回是列表套元组

# 取出所有
for key,value in d1.items():
    print(key,value)        #  key,value = ("name",'age')

     ⑤pop:指定key进行删除,有返回值,返回为对应的value

      popitem:随机删除键值对,返回删除元组

# pop
>>> d1 = {'name':'abc','age':18}
>>> d1.pop('name')
'abc'
>>> d1
{'age': 18}

# popitem
>>> d1 = {'name':'abc','age':18}
>>> d1.popitem()
('age', 18)
>>> d1
{'name': 'abc'}

      ⑥update:用新字典替换旧字典,key值不存在新增,key值存在就修改

>>> d1 = {'name':'abc','age':18}
>>> d1.update({'a':'2'})
>>> d1
{'name': 'abc', 'age': 18, 'a': '2'}
>>> d1.update({'name':'a'})
>>> d1
{'name': 'a', 'age': 18, 'a': '2'}

      ⑦fromkeys:生成一个字典,第一个参数(列表),它会以第一个参数中的每个元素为key值,第二个参数为value

>>> dict.fromkeys(['k1','k2'],['v1','v2'])
{'k1': ['v1', 'v2'], 'k2': ['v1', 'v2']}

      ⑧setdefault:key不存在,新增键值对,返回所增value;key存在,返回对应value

>>> d1 = {'name':'abc','age':18}
>>> d1.setdefault('name',1)
'abc'
>>> d1
{'name': 'abc', 'age': 18}
>>> d1.setdefault('a',1)
1
>>> d1
{'name': 'abc', 'age': 18, 'a': 1}

2、类型总结:

    有序or无序(有索引的都是有序的):

      字典类型无序

    可变or不可变:

      值改变id不变就是可变类型,值改变id也变就是不可变类型

      字典类型是可变类型

    存一个值or多值:

      字典可以存多个值

四、集合

1、基本方法:

    用途:

      去重、关系运算

    定义方法

      通过大括号存储数据,每个元素通过逗号分隔

      定义空集合,必须使用set()来定义

    内置方法:     

      合集:|
      交集:&
      差集:-
      对称差集:^

  集合中不可能出现两个相同的元素

pythons = {'egon', 'kevin', 'echo', 'owen', 'jason'}
linuxs = {'egon', 'echo', 'tank', 'oscar'}

pythons = {'egon', 'kevin', 'echo', 'owen', 'jason'}
linuxs = {'egon', 'echo', 'tank', 'oscar'}
print("报名python学员:", pythons)
print("报名linux学员:", linuxs)
print("既报名python又报名Linux的学生:", pythons & linuxs)
print("所有报名的学生:", pythons | linuxs)
print("只报名python课程的学员:", pythons - linuxs)
print("没有同时这两门课程的学员:", pythons ^ linuxs)

2、类型总结:

    有序or无序(有索引的都是有序的):

      集合类型无序

    可变or不可变:

      值改变id不变就是可变类型,值改变id也变就是不可变类型

      集合类型是可变类型

    存一个值or多值:

      集合可以存多个值

小结:

  存一个:整型、浮点型、字符串
  存多个值:列表、元组、字典、集合


  可变or不可变:
  可变:;列表,字典
  不可变:整型、浮点型、字符串、元组、集合

  有序or无序:
  有序:字符串、列表、元组
  无序:字典、集合

  占用空间:
  字典
  列表
  元组
  集合
  字符串
  数字类型

posted @ 2019-11-06 19:02  treeter  阅读(164)  评论(0编辑  收藏  举报