列表、元组、字典、集合

列表:

列表是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) 交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值