2.Python数据容器(dict、list、set、tuple、字符串、序列切片)

重点:数据容器的通用操作

my_list = [1,2,3,4,5,6,7,8,9]
my_tuple = (1,2,3,4,5,6,7,8,9)
my_set = {1,2,3,4,5,6,7,8,9}
my_str = "123456789"
my_dict = {"a":1,"b":2,"c":3,"d":4,"e":5,"f":6,"g":7,"h":8,"i":9}

# 1.max 最大元素
print(max(my_list))
print(max(my_tuple))
print(max(my_set))
print(max(my_str))
print(max(my_dict))#i python3.7 之后,字典会按照键的字母顺序返回最大值

# 2.min 最小元素
print(min(my_list))
print(min(my_tuple))
print(min(my_set))
print(min(my_str))
print(min(my_dict))

# 3.len 长度my_
print(len(my_list))
print(len(my_tuple))
print(len(my_set))
print(len(my_str))
print(len(my_dict))

# 4.容器反转reverse和 排序(默认正序) 并且排序的返回值是列表
print(sorted(my_list, reverse=True))
print(sorted(my_tuple, reverse=True))
print(sorted(my_set, reverse=True))
print(sorted(my_str, reverse=True))
print(sorted(my_dict, reverse=True))#['i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a']

# 5.容器类型转换
#list
print(list(my_list))
print(list(my_tuple))
print(list(my_set))
print(list(my_str))
print(list(my_dict))#['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']

#tuple
print(tuple(my_list))
print(tuple(my_tuple))
print(tuple(my_set))
print(tuple(my_str))
print(tuple(my_dict))#('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i')

#set
print(set(my_list))
print(set(my_tuple))
print(set(my_set))
print(set(my_str))
print(set(my_dict))#{'g', 'i', 'c', 'd', 'h', 'e', 'b', 'a', 'f'}

#str
print(str(my_list))
print(str(my_tuple))
print(str(my_set))
print(str(my_str))
print(str(my_dict))#{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8, 'i': 9}







1.dict字典

#字典相当与Java中的map集合,有 key 和 value 并且key不能重复
# 定义空字典
dict1 = {}
dict2 = dict()
# 定义有数据的字典
dict3 = {'name':'张三','age':18,'sex':'男'}

# 1.获取所有的key 
print(dict3.keys())   # dict_keys(['name', 'age', 'sex'])

# 2.获取所有的value
print(dict3.values()) # dict_values(['张三', 18, '男'])

# 3.获取所有的key和value 
print(dict3.items()) # dict_items([('name', '张三'), ('age', 18), ('sex', '男')])

# 4.获取指定key的value,如果不存在则返回None 
print(dict3.get('name')) # 张三

# 5.获取指定key的value,如果不存在则报错 
print(dict3['name'])# 张三

#小练习,打印一个学生的三科成绩
dict4 = {"张三":{
    "语文":80,
    "数学":90,
    "英语":85
    },
    "王五":{
    "语文":90,
    "数学":95,
    "英语":92
    }
}
print(dict4.get("张三"))

#遍历字典
for key in dict4.keys():
    print("遍历字典",dict4.get(key))
    #遍历字典 {'语文': 80, '数学': 90, '英语': 85}
    #遍历字典 {'语文': 90, '数学': 95, '英语': 92}

#字典的增删改
#1.增
dict4["李四"] = {"语文":90,"数学":95,"英语":92}
#2.改
dict4["张三"]["数学"] = 100
print(dict4["张三"])#{'语文': 80, '数学': 100, '英语': 85}
#3.删
del dict4["张三"]
dict4.pop("李四")
print(dict4.items())#dict_items([('王五', {'语文': 90, '数学': 95, '英语': 92})])


2.list列表

list = ['Tom', 'Lily', 'Rose',18]
for item in list:
    print(item)
    print(type(item))
print(list[1])#lily

list2 = [[1,2,3],[4,5,6],[7,8,9]]
print(list2[0][1])#2
print(list2[1][1])#5
print(list2[2][1])#8

#index方法,获取下标
index = list.index(18)
print(index)#3
print(list.index('Lily'))#1

#insert方法,插入一个元素
list.insert(1,'Jerry')
print(list)#['Tom', 'Jerry', 'Lily', 'Rose', 18]

#append方法,追加一个元素
list.append('Lucy')
print(list)#['Tom', 'Jerry', 'Lily', 'Rose', 18, 'Lucy']

#extend方法,追加一个列表
list.extend(['HanMeimei','xiaoming'])
print(list)#['Tom', 'Jerry', 'Lily', 'Rose', 18, 'Lucy', 'HanMeimei', 'xiaoming']

#count方法,统计元素个数
count = list.count('Tom')
print(count)#1

#del方法,pop方法,remove方法,clear方法,删除元素
del list[1]
print(list)#['Tom', 'Lily', 'Rose', 18, 'Lucy', 'HanMeimei', 'xiaoming']

#pop方法,默认删除最后一个元素,也可以删除指定下标的元素
list.pop()
print(list)#['Tom', 'Lily', 'Rose', 18, 'Lucy', 'HanMeimei']

#remove方法,删除指定内容的元素
list.remove('Lucy')
print(list)#['Tom', 'Lily', 'Rose', 18, 'HanMeimei']

#clear方法,清空列表中的元素
list.clear()
print(list)#[]

3.set集合

#集合无序,无索引,不重复,每一次新打印的数据顺序是随机的
setList = set() #set集合不可以直接 {} 以为被字典占用了
setList1 = {'a', 'b', 'c', 'd', 'e'}
print(setList1)

#add
setList1.add("a")
setList1.add("新添的数值")
print(setList1)#{'a', 'd', 'c', 'e', '新添的数值', 'b'}

#pop随机取出一个元素
# result1 = setList1.pop()
# print(setList1)#{'b', 'a', 'd', '新添的数值', 'e'}
# print(result1) #c

#remove删除指定的元素
setList1.remove("a")
print(setList1)#{'d', 'c', 'e', '新添的数值', 'b'}

#difference取两个集合的差集(设集合2与3的交集为集合4,取出集合2在集合4中的补集)
setList2 = {1,2,3}
setList3 = {1,4,5}
setResult = setList2.difference(setList3)#返回在集合2中与集合3不同的元素集合
print(setResult)#{2, 3}
print(setList2)#{1, 2, 3}

#difference_update消除两个集合的差集(设集合2与3的交集为集合4,删除在集合2中与集合4相同的元素)
setList2.difference_update(setList3)
print(setList2)#{2, 3}

#union并集
result = setList2.union(setList3)
print(result)#{1, 2, 3, 4, 5}

4.tuple元组

#元组相比列表,元组一旦定义就不可修改

# 初始化元组
emptyTuple1 = ()
emptyTuple2 = tuple()
print(emptyTuple1)# ()
print(emptyTuple2)# ()

tuple1 = (1,2,3,4,5,3,3,3,3)
print(tuple1)# (1, 2, 3, 4, 5, 3, 3, 3, 3)

#1.元组中可以包含不同类型的元素
tuple2 = (1,'a',True)
print(tuple2)# (1, 'a', True)

#2.元组中可以包含列表
tuple3 = (1,[2,3,4],5)
print(tuple3)# (1, [2, 3, 4], 5)

#3.元组中可以包含元组
tuple4 = (1,(2,3,4),5)
print(tuple4)# (1, (2, 3, 4), 5)

#4.元组中可以包含字典
tuple5 = (1,{2:3,4:5},5)
print(tuple5)# (1, {2: 3, 4: 5}, 5)

#5.元组中可以包含集合
tuple6 = (1,{2,3,4},5)
print(tuple6)# (1, {2, 3, 4}, 5)

#6.元组中可以包含函数
tuple7 = (1,print,5)
print(tuple7)# (1, <built-in function print>, 5)

#7.元组中可以包含类
tuple8 = (1,object,5)
print(tuple8)# (1, <class 'object'>, 5)

#1.index方法
index = tuple1.index(3)
print(index)# 2

#2.count方法
count = tuple1.count(3)
print(count)# 5

#3.len方法
length = len(tuple1)
print(length)# 9

5.字符串

str = "xiakangan"
print(str[0])
index = str.index("an")
print(index)# 4

#1.分割字符串,返回的是一个列表
str1 = "xiakangan,python,idea"
list = str1.split(",")
print(list)# ['xiakangan', 'python', 'idea']

#2.join拼接字符串
str2 = "111".join(list)
print(str2)# xiakangan111python111idea

#3.replace字符串的替换
str3 = "xiakangan"
str4 = str3.replace("xiakangan","kangxiakang")
print(str4)# kangxiakang

#4.字符串的切片
str5 = "xiakangan"
print(str5[0:3])# xia

#5.strip默认无参数去除字符串两端的空格,有参数时去除字符串中两端包含相应参数的字符
str6 = "  221xiakangan12 1 "
str7 = "221xiakangan12 1"

print(str6.strip())#221xiakangan12 1
print(str6.strip("12"))#  221xiakangan12 1空格
print(str7.strip("12"))#xiakangan12空格

6.序列切片

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list2 = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
list3 = "hello world"

# 切片操作
# [start:end:step]

#1.顺序取值
print(list1[0:5:2])  #[1, 3, 5]
print(list2[0:5:2])  #(1, 3, 5)
print(list3[0:5:2])  #hlo

#2.倒序取值
print(list1[len(list1)::-1])  #[10, 9, 8, 7, 6, 5, 4, 3, 2,1]
print(list2[len(list3)::-1])  #(10, 9, 8, 7, 6, 5, 4, 3, 2,1)
print(list3[len(list3)::-1])  #dlrow olleh

# 小练习:将hello world正序,并切片一个world输出
list4 = list3[len(list3)::-1]
result = list4[::-1][6::]#倒序并从下标为6的开始取值
print(result)  #dlrow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值