Python3:集合的操作(list、set、dict的操作)

当前操作来源于:自学,通过自己.方式实现

1.list的操作

1.创建一个list

strList=[]
strList=list()

2.添加数据操作

strList.append("张三")    # 这里直接在末尾追加数据
strList.insert(0, "张三") # 这里是直接在下标中插入数据
strList.extend(["张三", "李四", "王五"]) #直接在集合的末尾追加一些数据

使用list集合进行+法操作的时候默认调用的就是extend方法

3.取出一个元素

item=strList[0] # 直接取出对应下标中的数据
pop = strList.pop() # 移除第一个数据并取出
right_item = strList[-1] # 默认从右边开始

4.删除一个元素

strList.remove("张")  # 直接移除一个元素,如果是不存在的数据就会报异常

5.获取list的长度

len(strList)

6.通过count方法统计当前字符出现的次数

2.list的操作的demo

#   ===============一个list集合=====================
strList = list()  # 创建一个空的列表集合
print("输出列表集合中的内容:{0},当前的列表的长度为:{1}".format(strList, len(strList)))

# 向当前的列表中的末尾添加数据
strList.append("张三")
strList.append("李四")
strList.append("王五")
strList.append("赵六")
print("输出列表集合中的内容:{0},当前的列表的长度为:{1}".format(strList, len(strList)))

# 移除列表中的一个数据 Object T,如果不能存在就会报错
if "张" in strList:
    print("移除:{0}".format("张"))
    strList.remove("张")
elif "张三" in strList:
    print("移除:{0}".format("张三"))
    strList.remove("张三")

print("输出列表集合中的内容:{0},当前的列表的长度为:{1}".format(strList, len(strList)))

#  取出第一个元素
pop = strList.pop()
print("取出集合中的内容:{0},当前的列表的长度为:{1}".format(pop, len(strList)))

# 统计字符在list中出现的次数
lisiCount = strList.count("李四")
print("统计李四名称出现的数量:{0}".format(lisiCount))

# 插入数据,在指定的下标中插入指定的数据
print("插入数据前:输出列表集合中的内容:{0},当前的列表的长度为:{1}".format(strList, len(strList)))
strList.insert(0, "张三")
print("插入数据后:输出列表集合中的内容:{0},当前的列表的长度为:{1}".format(strList, len(strList)))

# 反转list
strList.reverse()
print("反转后:输出列表集合中的内容:{0},当前的列表的长度为:{1}".format(strList, len(strList)))

# 向list中追加集合数据,可以直接添加集合数据
strList.extend(["张三", "李四", "王五"])
print("输出列表集合中的内容:{0},当前的列表的长度为:{1}".format(strList, len(strList)))

strList.remove("张三")  # 默认移除找到的第一个数据
print("输出列表集合中的内容:{0},当前的列表的长度为:{1}".format(strList, len(strList)))

lisiCount = strList.count("李四")
print("统计李四名称出现的数量:{0}".format(lisiCount))

# 迭代列表中的数据,使用foreach实现
print("使用foreach实现迭代循环")
for s in strList:
    print(s)

# 使用while循环的方式迭代数据
print("使用while实现迭代循环")
index = 0
while index < len(strList):
    print(strList[index])
    index += 1

3.set的操作的demo

# 主要用于操作当前的set类型的数据的操作,主要用于存储不重复的元素

# 定义一个set类型的变量
hashSet = set()
# 添加一个字符到set集合中
hashSet.add("name")
print("当前hashSet集合中的数据为:{0}".format(hashSet))

# 添加一个数组到set集合中
hashSet.update(["username", "password", "age"])
print("当前hashSet集合中的数据为:{0}".format(hashSet))

# 获取集合的长度
print("当前的hashSet集合的长度为:{0}".format(len(hashSet)))

# 移除一个元素
hashSet.remove("name")
print("当前hashSet集合中的数据为:{0}".format(hashSet))

# 从当前的set集合中取出第一个元素
pop = hashSet.pop()
print("从当前hashSet集合中的取出的数据为:{0}".format(pop))
print("当前hashSet集合中的数据为:{0}".format(hashSet))

# 清空set集合中的元素
hashSet.clear()
print("当前hashSet集合中的数据为:{0}".format(hashSet))

一个set中的两个删除方法,set.remove()和set.discard()方法的区别


# 删除数据的操作
my_set5 = {1, 2, 3, 4, 5, 6}
# 1.remove
my_set5.remove(1)
# 2.discard
my_set5.discard(1)

print(my_set5)

结果:

{2, 3, 4, 5, 6}

扫描二维码关注公众号,回复: 8723985 查看本文章

没有报错,然后将当前顺序反转

# 删除数据的操作
my_set5 = {1, 2, 3, 4, 5, 6}
# 1.discard
my_set5.discard(1)
# 2.remove
my_set5.remove(1)

print(my_set5)

结果:
在这里插入图片描述
说明:在执行discard()删除一个数据的时候,如果这个数据不存在不会报错,如果使用remove()删除一个数据的时候,如果这个数据不存在就会报KeyError错误

4.dict的操作

print("=========dict的操作============")
# dict集合的操作
hashMap = dict()
hashMap.setdefault("username", "admin")
hashMap.setdefault("password", "123456")
hashMap.setdefault("age", 18)
hashMap.setdefault("gender", "男")
print("当前的dict中的数据为:{0}".format(hashMap))

# 更新数据操作,只能通过__setitem__进行修改操作
hashMap.__setitem__("username", "user")
print("当前的dict中的数据为:{0}".format(hashMap))
hashMap.__setitem__("age", 22)
# hashMap.setdefault("age", 22)
print("当前的dict中的数据为:{0}".format(hashMap))

# 通过key获取对应的key的值
username = hashMap.get("username")
print("username:{0}".format(username))

# 获取所有的key
allKey = hashMap.keys()
print(allKey)
# 获取所有的value
allValue = hashMap.values()
print(allValue)

# 判断当前的dict中是否包含username这个key
hasUsername=hashMap.__contains__("username")
print(hasUsername)

# 输出当前的dict的长度
print("当前的dict的长度:{0}".format(len(hashMap)))

# 迭代操作
for item in hashMap.items():
    print(item) #发现输出的结果类型为Tuple类型,不可改变


结果:
在这里插入图片描述

5.创建set需要注意的地方

# 用于重新学习当前的set集合的操作

my_set1 = set()
print(type(my_set1))
my_set2 = {1}
print(type(my_set2))
my_set3 = {}
print(type(my_set3))
# 以上证明创建set集合的时候需要在当前的{}中写入值,不写默认表示dict类型
my_set4 = {1: "123"}
print(type(my_set4))
# 如果使用了key:value默认创建的就是dict类型的数据

<class ‘set’>
<class ‘set’>
<class ‘dict’>
<class ‘dict’>

6.判断操作

my_set1 = set()
if my_set1 :
    print("true")
else:
    print("false")

如果当前的set或者是其他集合中的数据的内容为空,就会默认在if判断中表示为False

7.总结

1.使用list操作集合的时候,可以使用append添加数据,以及提供了一个insert方法插入数据(数据可以重复)

2.使用set操作的时候,可以通过pop取出第一个数据,数据不能重复

3.使用dict的时候,通过setdefault方法设置初始值只能通过__setitem__方法修改当前的key对应的值,通过__contains__判断是否包含这个key

4.感觉使用的方式基本上和当前的java中的操作差不多

5.创建set的时候需要注意:使用{}或者为{key:value}的数据的时候默认创建的就是dict的数据类型,创建set需要使用{1}这种单个数据的时候才是创建set集合

发布了215 篇原创文章 · 获赞 39 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45492007/article/details/102998542