列表:
列表是Python内置的数据类型:list 标识 [ ]
list是一种有序的集合 【插入顺序和显示顺序是一致的】
元素是可以增加、删除以及修改的,并且列表中添加元素会自动添其编号 这个编号从0开始 这编号称之为索引(下标 脚标)
为什么会出现列表?
因为我们普通的变量只能存储一个数据或数据类型。
list类似于容器,可以存放多个变量和不同的数据类型。
二维列表 [[1,2],[3,4]]
# 列表类型
# 定义列表
list0 = ['黄友春','小梅','小罗',12,True,(12,34)]
# 获取列表的总个数
res = len(list0)
print(res)
# 获取列表中的元素
"""
[0,len(list0)-1]
[-len(list0),-1]
"""
res =list0[-1][-1]
print(res)
# 修改元素
list0[-2] = "小谭"
print(list0)
# 向列表添加元素
# 追加
list0.append('tall')
print(list0)
list0.append(10)
print(list0)
#在指定位置进行插入
list0.insert(0,'head')
print(list0)
list0.insert(1,'body')
print(list0)
# 将一个列表合并当前列表
list1 = [99,88,77,66,55,44,33,22,10,20]
list0.extend(list1) #将list1的元素一 一添加到list0的末尾。
print(list0)
# 删除元素
# 返回并删除指定索引位上的数据,默认删除最后一个元素
# 删除指定索引上的位置
list0.pop(2)
print(list0)
#默认删除最后一个元素
list0.pop()
print(list0)
# 删除指定元素 如果有重复的值 只会删除第一个出现的元素
# list0.remove(10)
# print(list0)
# 统计某个元素出现的次数
res = list0.count(10)
print(res)
"""
list0=[10,22,44,66,22,10,99,66]
要求:列表元素顺序不变 使列表每一个元素只有1个
最后结果[10,22,44,66,99]
可以借助其他列表完成
"""
# list0=[10,22,44,66,22,10,99,66]
# list2 = []
# for i in list0:
# if i not in list2:
# list2.append(i)
# print(list2)
# set 用于排重 是无序的集合
# res = set(list0)
# print(res)
# 列表切片 -- 提取子序列
"""
[start:stop[:step]]
前闭后开
"""
print(list0)
print(list0[2:5])
print(list0[::2])
# 倒序
print(list0[::-1])
# 列表有没其他方法实现排序(reverse 颠倒)
list0.reverse()# 列表逆序
print(list0)
# 排序:同类型的数据 才会有排序的情况出现
list0 = [12,35,19,27,66,88,11]
list0.sort(reverse=False) # 默认升序
list0 = [12,35,19,27,66,88,11]
list0.sort(reverse=True) # 降序
print(list0)
help(list0.sort)
#去重,但顺序是乱的。
list1=set(list0)
print(list1)
#去重并按原来的顺序排列
list1=set(list0)
list1.sort(key=list0.index)
print(list1)
"""
sort(key=None, reverse=False)
key -- 接受的是一个函数,函数可以当做参数传递。 作用是列表中的元素依次作用于对应的函数,返回的是排序的状态
reverse -- 接受的是布尔型
默认升序
"""
# f = abs(-100)
# print(f)
# f = abs
# print(f)
# res = f(-100)
# print(res)
# res = max([-12,22,66,771,5645])
# print(res)
list0 = [-12,22,66,771,56,88]
"""
自己写方法 获得一个列表中的最大值
思路:
遍历列表 获取对应的元素
元素之间进行比较 >
变量记录最大值
"""
max_item = list0[0]
for item in list0:
if item > max_item:
max_item = item
print(max_item)
# 另外一种方式
max_index = 0
for i in range(1,len(list0)):
if list0[i] > list0[max_index]:
max_index = i
print(list0[max_index])
# 删除列表(删除所有元素)
list0.clear()
print(list0)
# 二维列表
list_two = [[89,88,77],[44,33],[55,66,88]]
# res = list_two[0]
# print(res[1])
print(list_two[0][1])
# 获取所有的数据
for list_one in list_two:
for item in list_one:
print(item)
元组
类似于列表的 与列表的区别?
列表对应的元素值是可以修改的
元组的元素值是不可以发生修改的
简单说:元组一旦创建确定,内容不能发生改变,但可以使用切片间接的更新和删除元组。
没有对应的的增加、删除、修改
遍历 操作
# 元组类型
tuple0 = (23,88,'张三','李四','王五')
# 获取元组中的元素
res = tuple0[2]
print(res)
# 修改元素 -- 不行
# tuple0[2] = '小张'
# print(tuple0)
tuple1 = (23,88,'张三','李四','王五',[12,22])
tuple1[-1][1] = 33
print(tuple1)
# 遍历
for item in tuple1:
print(item)
# # 定义元组
# tuple2 = (2,)
# print(type(tuple2))
for i in range(len(tuple1)):
print(tuple1[i])
字典 dict
是使用键值对的方式进行存储数据的 key – value
存放键值对的集合 元素是无序
键和值一一对应
在字典中是根据键来获取值
对于键的要求:
1.不能重复 必须是唯一的
2.键的类型对于的数据是不可改变的 【值元素内容】
# 字典类型
dict0 = {"Python":120,"Java":100,"UI":121}
res = "Python1" in dict0
print(res)
# 添加键和值
dict0['C#'] = 125
print(dict0)
# 获取Python科目的成绩 如果key不存在直接报错
# res= dict0["Python1"]
# print(res) # KeyError: 'Python1'
# 这种形式获取 如果key不存在返回None 建议使用
res = dict0.get('Python1')
print(res)
# 修改数据
dict0['Python'] = 150
print(dict0)
# 删除数据
dict0.pop('C#')
print(dict0)
# 遍历所有数据
# 1.获取所有的值
values = dict0.values()
print(values)
for value in values:
print(value)
# 2. 获取键
for key in dict0:
print(key)
# 3. 获取键对应的值
items = dict0.items()
print(items)
for item in items:
print('key=',item[0],'value=',item[1])
# for k,v in dict0.items():
# print(k,v)
# a,b = 11,12
# print(a,b)
"""
1.
统计一个英文字符串中 每个字母出现的次数
字典:
key:value
字母:个数
"""
src_str = input("请输入一串英文字符串:")
dict0 = {}
# 遍历字符串
for s in src_str:
if s not in dict0:
dict0[s] = 1
else:
# 获取原来的值 value
value = dict0[s]
value += 1
dict0[s] = value
print(dict0)
"""
2.键盘录入一句英文语句 单词和单词之间使用空格隔开
统计每个单词出现的次数
字典:
key:value
单词:个数
"""
words = input("录入一句英文语句单词和单词之间使用空格隔开:")
w_dict0 = {}
# 分割出每个单词 在进行遍历
w_list = words.split(" ")
# 遍历字符串
for word in w_list:
if word not in w_dict0:
w_dict0[word] = 1
else:
w_dict0[word]+=1
print(w_dict0)
集合
不允许存放重复的数据 有自动排重的功能
# 集合操作
dice0 = {"语文":125,"数学":99,"英语":88,"数学":99,"英语":88}
# 使用set 集合去重
res = set(dice0)
print(res)
# 集合
set0 ={88,99,10,222,88,989,99}
print(set0)
# 列表转换集合
list1 = [1,2,2,3]
res = set(list1)
print(res)
# 交集 和 并集
set1 = {1,2,3}
set2 = {2,3,4}
print(set1&set2) 并
print(set1|set2) 交