列表,字典,元组,集合的内置方法

一、列表类型内置方法(list)  

1.按照索引(正向取值+反向取值),即可存也可取

name_list = ['nick', 'jason', 'tank', 'sean']
print(name_list[0])    # 取出列表第一个元素
    #输出 nick
name_list[0] = 'nick handsom'
print(name_list)
    # 输出 ['nick handsom', 'jason', 'tank', 'sean']
name_list[1000] = 'tank sb'  # 报错

2.切片

name_list = ['nick', 'jason', 'tank', 'sean']
print(name_list[0:3:2])    #从0到3.步长为2
     # 输出结果为['nick', 'tank']

3.长度(list)

name_list = ['nick', 'jason', 'tank', 'sean']
print(len(name_list))
    # 输出结果为4,代表长度为4

4.成员运算in和not in

name_list = ['nick', 'jason', 'tank', 'sean']
print('wang' in name_list)   
#返回值 False
print('wangwen' not in name_list)
#返回值 True

5.追加值(append)

name_list = ['nick', 'jason', 'tank', 'sean']
name_list.append('take sb')
print(name_list)
#输出['nick', 'jason', 'tank', 'sean', 'take sb']

6.删除(dal)

name_list = ['nick', 'jason', 'tank', 'sean']
del name_list[2]
print(name_list)
#输出['nick', 'jason', 'sean']

7.循环(for)

name_list = ['nick', 'jason', 'tank', 'sean']
for i in name_list:
    print(name)
#输出
nick
jason
tank
sean

8.insert(添加)

name_list = ['nick', 'jason', 'tank', 'sean']
name_list.insert(1,'handsome')  #在1位置添加“handsome”
print(name_list)
     #输出结果是['nick', 'handsome', 'jason', 'tank', 'sean']

9.pop()(删除,默认删除最后一个元素)

name_list = ['nick', 'jason', 'tank', 'sean']
print(name_list.pop(1))   #这样输出的是它删除掉的这个元素,而没有输出整个列表
#输出结果为 jason
print(name_list)  #输出的是删除过后的列表
['nick', 'tank', 'sean']

10.remove()# 移除(找不到会报错)
print(name_list.remove('nick'))  #  已经移除掉了,所以返回值为空
print(name_list)
     #返回值分别为
     #None
     #['jason', 'tank', 'sean']

11.count()# 计数。列表中元素的数量

name_list = ['nick', 'jason', 'tank', 'sean','tank']
print(name_list.count('tank'))  #表示列表中有几个“tank”
# 返回2个

12. index()#索引。列表中元素的索引

name_list = ['nick', 'jason', 'tank', 'sean']
print(name_list.index('nick'))
#返回值为0,代表‘nick’在列表中第一位

13.clear()清空列表

name_list = ['nick', 'jason', 'tank', 'sean']
name_list.clear()
print(name_list)
#[]

14.copy() 复制

name_list = ['nick', 'jason', 'tank', 'sean']
print(name_list.copy()) #相当于复制了一份
#返回值['nick', 'jason', 'tank', 'sean']

15.extend() 扩展列表(把后面括号的列表中的内容添加到原列表中)

name_list = ['nick', 'jason', 'tank', 'sean']
name_list2 = ['nick handsome']
name_list.extend(name_list2)  
print(name_list)
#输出为:['nick', 'jason', 'tank', 'sean', 'nick handsome']

16.reverse() #反转列表

name_list = ['nick', 'jason', 'tank', 'sean']
name_list.reverse() 把列表中数据反转
print(name_list)
# 输出为:['sean', 'tank', 'jason', 'nick']

17.sort()按照首字母排序

# list之sort(),使用sort列表的元素必须是同类型的
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.sort()
 
print(f"name_list: {name_list}")
 
name_list.sort(reverse=True)
print(f"name_list_reverse: {name_list}")
# 输出结果为:
# name_list: ['jason', 'nick', 'sean', 'tank']
# name_list_reverse: ['tank', 'sean', 'nick', 'jason']

字典内置方法

1.长度 : .len( )

  • 统计的是 key 的个数
  • 如果存在 key 相同的键值对, 那么以后入的为主
以 "key" 来决定个数
dic = {"name":"shawn","age":22,"sex":"man"}
print(len(dic)) # 3

2.成员运算 in 和 not in

判断是不是字典的 key

dic = {"name":"shawn","age":22,"sex":"man"}
print("name" in dic) #True
print("age" not in dic) #False

3.  删除 del,  .pop( ),  .popitem

  • del : 直接删除"谁", 通用万能删除, 它不支持赋值语法, 赋值会报错
  • .pop() : 根据 key 进行删除, 返回的值是 key 对应的 value
  • .popitem() : 无参数, 随机删除一个键值, 返回一个元组, 元组里第一个值是 key, 第二个值是对应的 val
"del"
dic = {"name":"shawn","age":22,"sex":"man"}
del dic["name"]
print(dic) #{'age': 22, 'sex': 'man'}
".pop", 会返回删除的 "value"
res = dic.pop('age')
print(res) #22
print(dic) #{'sex': 'man'}
".popitem"返回的值是元组, ("key", "value")
dic = {"name":"shawn","age":22,"sex":"man"}
res = dic.popitem()
print(res) #('sex', 'man')
print(dic) #{'name': 'shawn', 'age': 22}

4. 取值 : 键 .keys( ), 值 .values( ), 键值对 .items( )

  • .keys() : 只取 key
  • .values() : 只取 value
  • .items() : 既取 key, 又取 value
  • 以下加入 for 循环组合使用
dic = {"name":"shawn","age":22,"sex":"man"}
".keys()"
list=[]
print(dic.keys()) #dict_keys(['name', 'age', 'sex'])
for k in dic.keys():
list.append(k)
print(list) #['name', 'age', 'sex']
".values()"
list2 = []
print(dic.values()) #dict_values(['shawn', 22, 'man'])
for v in dic.values():
list2.append(v)
print(list2) #['shawn', 22, 'man']
".items()"
l1 = []; l2 = []
print(dic.items()) #dict_items([('name', 'shawn'), ('age', 22), ('sex', 'man')])
for k,v in dic.items():
l1.append(k)
l2.append(v)
print(l1) #['name', 'age', 'sex']
print(l2) #['shawn', 22, 'man']

ps : Python2 当中的 键 .keys( ), 值 .values( ), 键值对 .items( ) 直接是列表输出的结果,比较占空间,而Python3中像是一只老母鸡, 想要就取一个

5.get( ) --->(寻找)

  • 上面提到可以使用 "dic[key]" 这种方式取值, 但找不到会报错
  • .get() : 参数为 key, 找不到返回 None, 容错性更好
dic = {"name":"shawn","age":22,"sex":"man"}
"dic[key]"找不到报错
res = dic["xxxx"]
print(res) #报错
".get()"找到返回"value",找不到返回"None"
res = dic.get("name")
print(res) #shawn
res = dic.get("xxxx")
print(res) #None

需要掌握的操作()

6.更新 .update( )

  • 更新就是键值对的修改或增加
  • 就像一个软件, 新版本是在旧版本的基础上修改 BUG 或者增加功能
  • 对与老字典来说,更新指的是 : 新字典中有而老字典中没有则添加,新有而老也有则覆盖
dic = {"name":"shawn","age":22}
修改了 "age", 增加了 "sex"
res = dic.update({"age":18,"sex":"man"})
print(dic) #{'name': 'shawn', 'age': 18, 'sex': 'man'}

7.清空 .clear( )

dic = {"name":"shawn","age":22,"sex":"man"}
dic.clear()
print(dic) #{}

8.初始化(造)一个字典模板 .fromkeys( )

  • 前一个参数是 key, 后一个参数是 value
  • 语法 : {}.fromkeys(['name','age','sex'],'xxxxxx')
不使用 ".fromkeys" 建模板
good_info={
'name':None,
'price':None,
'count':None
}
使用 ".fromkeys()" 建模板
dic = {}.fromkeys(['name','age','sex'],None)
print(dic) #{'name':None,'age':None,'sex':None}

示例

使用 "for" 循环
list1=['name','price','count']
dic={}
for x in list1:
dic[x]=None
print(dic) #{'name': None, 'price': None, 'count': None}
使用 ".fromkeys()" 直接实现
dic = {}.fromkeys(list1,None)
print(dic) #{'name': None, 'price': None, 'count': None}
加入商品信息
'mac' 20000 10 #商品信息
dic['name']='mac' #将商品信息加入到模板中
dic['price']=20000 #价格
dic['count']=10 #个数

9.添加并返回值 .setdefaul( )

  • 如果字典里有要添加的 key, 则不修改, 并返回 key 对应的原 value
  • 如果字典里没有要添加的 key, 则添加, 并返回添加的 key 对应的新 value
添加存在的 "key"
dic={'name':'shawn','age':22}
res=dic.setdefault('name','SHAWN')
print('返回值:',res) #返回值: shawn
print(dic) #{'name': 'shawn', 'age': 22}
添加不存在的 "key"
res=dic.setdefault('sex','man')
print('返回值:',res) #返回值: man
print(dic) #{'name': 'shawn', 'age': 22, 'sex': 'man'}

元组类型内置方法

元组是不可变的列表,即元组的值不可更改,因此元组一般只用于只存不取的需求。

1.索引取值

# tuple索引取值
name_tuple = ('nick', 'jason', 'tank', 'sean')
# name_tuple[0] = 'nick handsom'    # 报错

print(f"name_tuple[0]: {name_tuple[0]}")
 #  name_tuple[0]: nick
 

2.切片(顾头不顾尾,步长)

# tuple之切片
name_tuple = ('nick', 'jason', 'tank', 'sean')

print(f"name_tuple[1:3:2]: {name_tuple[1:3:2]}")
Copyname_tuple[1:3:2]: ('jason',)

3.成员运算

# tuple 成员运算
name_tuple = ('nick', 'jason', 'tank', 'sean')

print(f"'nick' in name_tuple: {'nick' in name_tuple}")
nick' in name_tuple: True
 

5.循环

# tuple 循环
name_tuple = ('nick', 'jason', 'tank', 'sean')

for name in name_tuple:
    print(name)
#nick
#jason
#tank
#sean
 

6.count()

# tuple  .count()
name_tuple = ('nick', 'jason', 'tank', 'sean')

print(f"name_tuple.count('nick'): {name_tuple.count('nick')}")
#  name_tuple.count('nick'): 

集合内置方法

定义

{ }内用逗号分隔开多个元素,每个元素必须是不可变类型

1.长度len

语法:len(set())计算集合的长度,会自动移除重复值,然后再计算长度

alpha_set = set('abcbadea')
print(len(alpha_set))
5

2.成员运算in和not in

alpha_set = {'c', 'b', 'd', 'e', 'a'}

print('a' in alpha_set)
print(5 in alpha_set)
True
False

3.|并集、union

语法:set1 | set2orset1.union(set2)返回所有集合的元素,重复的元素只会出现一次

alpha_set = {'c', 'b'}
num_set = {1,2,'b'}

print(alpha_set | num_set)
print(num_set.union(alpha_set))
{1, 2, 'c', 'b'}
{1, 2, 'c', 'b'}

4.&交集、intersection

语法:set1 & set2orset1.union(set2)返回两个或更多集合中都包含的元素,即交集

alpha_set = {'c', 'b'}
num_set = {1,2,'b'}

print(alpha_set & num_set)
print(num_set.intersection(alpha_set))
{'b'}
{'b'}

5.-差集、difference

语法:set1 - set2orset1.difference(set2)返回的集合元素包含在set1中,但不包含在set2中

alpha_set = {'c', 'b'}
num_set = {1,2,'b'}

print(alpha_set - num_set)
print(num_set.difference(alpha_set))
{'c'}
{1, 2}

6.父集:>、>= 、issuperset

语法:set1 > set2orset1 >= set2or set1.issuperset(set2)判断set1是否包含set2

alpha_set = {'c', 'b',1,2}
num_set = {1,2,'b'}
num_set1 = {1,'b',2}

print(alpha_set > num_set)
print(num_set.issuperset(num_set1))   # issuperset相当于 >=
print(num_set > num_set1)
True
True
False

7.子集:<、<= 、issubset

语法:set1 < set2orset1 <= set2or set1.issubset(set2)判断set2是否包含set1

alpha_set = {'c', 'b',1,2}
num_set = {1,2,'b'}
num_set1 = {1,'b',2}

print(num_set < alpha_set)
print(num_set.issubset(num_set1))   # issubset相当于 <=
print(num_set < num_set1)
True
True
False

需要掌握

add

语法:set.add()给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作

num_set = {1,2,'b'}
num_set.add('4')

print(num_set)
{1, 2, '4', 'b'}

remove

语法:set.remove()移除集合中的元素,如果集合中没有这个元素则会报错

num_set = {1,2,'b','4'}
num_set.remove('4')

print(num_set)
{1, 2, 'b'}
num_set = {1,2,'b'}
num_set.remove('4')   #  报错,集合中没有这个元素

print(num_set)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值