列表,元祖,字典,集合类型内置方法

一 列表类型内置方法

1.作用:存在多个元素
2.定义方式:[]内用逗号隔开任意数据类型的元素
3.方法
4.多个值or一个值:多个值
5.有序or无序:有序
6.可变or不可变:可变
name_list = ['jack','engo','nick']
s_list = list('sdfa')
print(s_list)
['s', 'd', 'f', 'a']


3.方法:

(1)按索引取值:正向取值+反向取值,既可取也可以存

name_list = ['jack','engo','nick','amy']
print(name_list[2])         # 打印索引为2的元素
print(name_list[-1])        # 打印索引为-1的元素
nick
amy

(2)切片

print(name_list[1:3])     # 打印索引为1到3之间的元素
print(name_list[-2:])     #  打印最后2个元素
['engo', 'nick']
['nick', 'amy']

(3)len 长度

print(len(name_list))    # 获取name_list的字符串长度
4

(4)in 和 not in

print('jack' in name_list)   # 'jack'在name_list中
print('jack' not in name_list)   # 'jack'不在name_list中
True
False

(5)append 追加
用于在列表末尾添加新的对象,只接受一个参数,参数可以是任何数据类型,被追加的元素在List中保持着原结构类型,此元素如果是一个list,那么这个list将作为一个整体进行追加

name_list = ['jack','engo','nick']
name_list.append('helen')   # 在列表最后添加‘helen’
name_list.append(['helen','aym'])  #在列表最后添加列表['helen','aym']
print(name_list)
['jack', 'engo', 'nick', 'helen', ['helen', 'aym']]

(6)extend
将一个列表中每个元素分别添加到另一个列表中,只接受一个参数;extend()相当于是将list B 连接到list A上,列表A中存在的元素也会添加

name_list = ['jack','engo','nick']
name = ['aym','helen','egon']      
name_list.extend(name)    #将列表‘name’添加到‘name_list’后面
print(name_list)
['jack', 'engo', 'nick', 'aym', 'helen', 'egon']

(7)insert
将一个元素插入到列表中,但其参数有两个(如insert(1,"g")),第一个参数是索引点,即插入的位置,第二个参数是插入的元素

name_list = ['jack','engo','nick']
name_list.insert(1,'aym')   # 将‘aym’添加到索引为1的位置
print(name_list)
['jack', 'aym', 'engo', 'nick']

(8)del
按照索引删除字符,返回值不可用给其他变量

del(name_list[2])
print(name_list)
['jack', 'engo', 'helen']

(9)pop
按照索引删除字符,返回值可以给其他变量,返回的是你弹出的那个数值
默认删除最后一个值,删除指定索引的值

name_list = ['jack','engo','nick','aym','helen']
name_list.pop()      # 删除‘helen’
name_list.pop(-2)    # 删除‘nick’
print(name_list)
['jack', 'engo', 'aym']
(10)remove
    删除首个字符符合条件的元素,并不能删除特定的索引
name_list = ['jack','engo','nick','aym','helen']
name_list.remove('helen')    # 删除最后一个元素
print(name_list)
['jack', 'engo', 'nick', 'aym']
(11)for 循环

(12)count
用于统计字符串里某个字符出现的次数。

name_list = ['helen','jack','engo','nick','aym','helen','helen','helen']
print(name_list.count('helen'))     # 统计‘helen’出现的次数
4
4

(13)sort
用于对原列表进行排序,排序结果返回原列表;如果指定参数,则使用比较函数指定的比较函数
reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)

name_list = ['jack','engo','nick','aym','helen']
name_list.sort()          # 已首字母进行升序排序(默认)
print(name_list)
name_list = ['jack','engo','nick','aym','helen']
name_list.sort(reverse = True)
print(name_list)         # 已首字母进行降序排序
['aym', 'engo', 'helen', 'jack', 'nick']
['nick', 'jack', 'helen', 'engo', 'aym']

(14)reverse
用于反向列表中元素(反向排序)

name_list = ['jack','engo','nick','aym','helen']
name_list.reverse()     # 反向排序
print(name_list)
['helen', 'aym', 'nick', 'engo', 'jack']

(15)index
从左向右寻找子序列的位置

name_list = ['jack','engo','nick','aym','helen']
print(name_list.index('nick'))
2

(16)clear
clear() 函数用于清空列表,类似于 del a[:]

name_list = ['jack','engo','nick','aym','helen']
name_list.clear()     # 情况name_list的内容
print(name_list)
[]

二 元祖类型内置方法

1.作用:类似于列表,可存不可取
2.定义方式:
    tup1 = ('Google', 'Runoob', 1997, 2000);
    tup2 = (1, 2, 3, 4, 5 );
    tup3 = "a", "b", "c", "d";   #  不需要括号也可以
3.方法
    (1)索引取值
    (2)切片
    (3)长度
    (4)成员运算
    (5)for循环
    (6)count
    (7)index
4.多个值or一个值:多个值
5.有序or无序:有序
6.可变or不可变:无可变不可变这一说

三 字典类型的内置方法

1.作用:值太多列表存容易,取麻烦时使用字典
2.定义方式:
    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
    dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
3.方法:
4.多个值or一个值:多个值
5.有序or无序:无序
6.可变or不可变:可变

(1)按键取值
按key键取值,可存可取

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(dict['Class'])       # 取出‘Class’的值·
First

(2)len
计算字典元素个数,即键的总数

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(len(dict))   
3

(3)key,valuses,items

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(dict.items())
print(dict.keys())
print(dict.values())
dict_items([('Name', 'Runoob'), ('Age', 7), ('Class', 'First')])
dict_keys(['Name', 'Age', 'Class'])
dict_values(['Runoob', 7, 'First'])

(4)for循环

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
for k, v in dict.items():
    print(k, v)
Name Runoob
Age 7
Class First
(5)in 和 not in
    in 操作符用于判断键是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print('Class' in dict)
False
(6)pop
    删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(dict.pop('Name'))
print(dict)
Runoob
{'Age': 7, 'Class': 'First'}
(7)fromkeys
    默认把给定列表内的元素取出来当成key,然后使用一个默认value新建一个字典
dic = dict.fromkeys(['a','b','c','d','e'], 1)     # 指定值
print(dic)                             
x = dict.fromkeys(('key1', 'key2', 'key3'))     # 不指定值
print(x)
{'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1}
{'key1': None, 'key2': None, 'key3': None}
(8)setdefault
    如果字典中有该key的话,则key对应的值不变;如果没有,则增加
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict.setdefault('搜索','google')      # dict中增加'搜索':'google'
print(dict)
dict.setdefault('Name','nick')     # dict中已存在‘name’的给定值,不会发生改变
print(dict)
{'Name': 'Runoob', 'Age': 7, 'Class': 'First', '搜索': 'google'}
{'Name': 'Runoob', 'Age': 7, 'Class': 'First', '搜索': 'google'}
(9)get
    get() 函数返回指定键的值,如果值不在字典中返回默认值,也可以返回给定的值
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(dict.get('Age'))             # 找到返回指定键的值
print(dict.get('name'))     # 没找‘name’则返回默认值
print(dict.get('name','NO'))    # 没找‘name’则返回给定的值‘NO’
7
None
NO
(10)update
    把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里
dict = {'Name': 'Runoob', 'Age': 7}
dict2 = {'Sex': 'female' }
dict.update(dict2)
print(dict)
{'Name': 'Runoob', 'Age': 7, 'Sex': 'female'}
(11)del
    删单一的元素也能清空字典
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict['Name']             # 删除‘name’及对应的值
print(dict)
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict                     # 清空dict的所以内容
print(dict)
{'Age': 7, 'Class': 'First'}
<class 'dict'>

四 集合类型内置方法

1.作用:存多个值,为了集合之间做运算
2.定义:可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
    parame = {value1,value2,value3}
    创建集合:    value = set()
              print(value)
3.方法:
4.多个值or一个值:多个值
5.有序or无序:无序
6.可变or不变:可变

(1)去重
列表转集合,会自动去重,但也会打乱列表元素原有的顺序

list = [0,0,1,2,1,3,5,5,4,8,6,7]
list1 = set(list)
print(list1)
{0, 1, 2, 3, 4, 5, 6, 7, 8}
(2)交集  
    intersecion() ;交集也可以用 & 表示 :set1 & set2
list_set = set([1,5,6,7,0,0,4,5,6])
print(list_set)
list_set2 = set([23,5,78,9,4,56])
print(list_set2)
print(list_set.intersection(list_set2))
{0, 1, 4, 5, 6, 7}
{4, 5, 9, 78, 23, 56}
{4, 5}
(3)并集
    union() ;并集也可以用 | 表示: set1 | set2;
list_set = set([1,5,6,7,0,0,4,5,6])
print(list_set)
list_set2 = set([23,5,78,9,4,56])
print(list_set2)
print(list_set.union(list_set2))
{0, 1, 4, 5, 6, 7}
{4, 5, 9, 78, 23, 56}
{0, 1, 4, 5, 6, 7, 9, 78, 23, 56}
(4)差集
    (就是这个集合有,而另一个集合没有的) difference() ;差集也可以用 - 表示: set1 - set2
list_set = set([1,5,6,7,0,0,4,5,6])
print(list_set)
list_set2 = set([23,5,78,9,4,56])
print(list_set2)
print(list_set.difference(list_set2))
{0, 1, 4, 5, 6, 7}
{4, 5, 9, 78, 23, 56}
{0, 1, 6, 7}
(5)对称差级
    对称差集(相当于并集减去交集) symmetric_difference();对称差集也可以用 ^ 表示 ;set1 ^ set2
list_set = set([1,5,6,7,0,0,4,5,6])
print(list_set)
list_set2 = set([23,5,78,9,4,56])
print(list_set2)
print(list_set.symmetric_difference(list_set2))
{0, 1, 4, 5, 6, 7}
{4, 5, 9, 78, 23, 56}
{0, 1, 7, 6, 23, 56, 9, 78}
(6)父级
    父集 issuperset();父集也可以用 >= 表示; set1 >= set2
list_set = set([1,5,6,7,0,0,4,5,6])
print(list_set)
list_set2 = set([23,5,78,9,4,56])
print(list_set2)
print(list_set.issuperset(list_set2))
{0, 1, 4, 5, 6, 7}
{4, 5, 9, 78, 23, 56}
False
(7)子集
    子集 issubset();子集也可以用 <= 表示; set1 <= set2
list_set = set([1,5,6,7,0,0,4,5,6])
print(list_set)
list_set2 = set([23,5,78,9,4,56])
print(list_set2)
print(list_set.issubset(list_set2))
{0, 1, 4, 5, 6, 7}
{4, 5, 9, 78, 23, 56}
False
(8) ==
    判断2个集合是否相等
list_set = set([1,5,6,7,0,0,4,5,6])
print(list_set)
list_set2 = set([23,5,78,9,4,56])
print(list_set2)
print(list_set == (list_set2))
{0, 1, 4, 5, 6, 7}
{4, 5, 9, 78, 23, 56}
False
拷贝
    如果l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变
浅拷贝
    如果l2是l1的浅拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2会跟着改变
深拷贝
    如果l2是l1的深拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,l2也不会变,即l2永远不会因为l1的变化而变化
原文地址:https://www.cnblogs.com/einsam/p/10927787.html