元组怎么转换成列表_python的元组和集合

cbedd9e3b09f566a0960f60bc27d4723.gif

点击上方蓝字关注我们

cbedd9e3b09f566a0960f60bc27d4723.gif c9bcdf82b3a492e98dc449a37df1a039.gif 前两期我们学习了python中字符串、列表的常用方法。这次我们简单介绍一下元组、字典。有了前两期的基础,其余数据类型的使用方法就不用再依次详细介绍了啦,详细我们已经掌握里面的“窍门”了。元组
1# 元组的定义
2tu = (1,3,[5,7],("a","b"),{"name":"zero学堂","age":1},)
定义元组的时候使用小括号,里面是元组的元素,元素的类型可以是整型、字符串、列表、元组、字典、布尔值等任何数据类型。为了很明显的表示定义的是一个元组,习惯上会在最后一个元素后面加一个逗号。 元组和列表在很多操作上都是类似的,也有一些不同的地方。 元组和列表的区别:
比较项列表元组
一级元素是否可以被修改
切片、索引
for循环遍历
是否可以新增、删除元素
字典 字典是python中一个十分重要的数据类型。其写法为括号中加入键-值对的方式:
1# 字典的定义
2stu = {
3    "name":"zhangsan",
4    "age":28,
5    "hobbies":["reading","basketball"],
6}
字典的值可以是任何类型的数据,但是字典的键不是,列表就不能作为字典的键(报错:TypeError: unhashable type: 'list)。意思是列表类型是unhashable。这是因为字典的键会被转换成一串哈希值最为真正的键,但是列表类型的数据不能被转换成哈希值。 字典的遍历
1# 字典的定义
2stu = {
3"name":"zhangsan",
4"age":28,
5"hobbies":["reading","basketball"],
6}
7
8for i in stu:
9    print(i) #输出 name age hobbies
如上直接遍历字典时输出的是字典的键 以上写法相当于:
1# 字典的定义
2stu = {
3"name":"zhangsan",
4"age":28,
5"hobbies":["reading","basketball"],
6}
7
8for i in stu.keys():
9  print(i)
b3ebb15ce48db70d7200032d6075b700.png如何遍历输出字典的值?
1stu = {
3"name":"zhangsan",
4"age":28,
5"hobbies":["reading","basketball"],
6}
7
8for i in stu.values():
9  print(i)
b3ebb15ce48db70d7200032d6075b700.png如何遍历输出字典的键-值?
1stu = {
3"name":"zhangsan",
4"age":28,
5"hobbies":["reading","basketball"],
6}
7
8for k,v in stu.items():
9  print(k,v)
b3ebb15ce48db70d7200032d6075b700.png如何根据字典的键获取键对应的值?
1stu = {
2    "name":"zhangsan",
3    "age":28,
4    "hobbies":["reading","basketball"],
5}
6
7v = stu.get("name","WANGWU") #第一个参数代表键,第二个参数代表如果键不存在时的默认值
8print(v)
9#输出 zhangsan
b3ebb15ce48db70d7200032d6075b700.png如何根据键删除键对应的值?
1stu = {
2    "name":"zhangsan",
3    "age":28,
4    "hobbies":["reading","basketball"],
5}
6
7v = stu.pop("name","WANGWU")# 该方法会返回删除的键对应的值。第一个参数代表键,第二个参数如果键不存在默认返回的值
8print(stu,v)
9# 输出{'age': 28, 'hobbies': ['reading', 'basketball']} zhangsan
b3ebb15ce48db70d7200032d6075b700.png如何从字典中随机删除元素?
1stu = {
2    "name":"zhangsan",
3    "age":28,
4    "hobbies":["reading","basketball"],
5}
6
7k,v = stu.popitem() #从字典中随机删除元素并返回删除元素的键-值
8print(k,v) #输出hobbies ['reading', 'basketball']
9print(stu) #输出{'name': 'zhangsan', 'age': 28}
b3ebb15ce48db70d7200032d6075b700.png如何根据键去修改字典的值?
1stu = {
2    "name":"zhangsan",
3    "age":28,
4    "hobbies":["reading","basketball"],
5}
6
7stu.update(name="WANGWU",grade=4) #将name的值改成WANGWU,grade的值改为4,如果没有grade这个键,会自动新增出来
8print(stu) 
9#输出 {'name': 'WANGWU', 'age': 28, 'hobbies': ['reading', 'basketball'], 'grade': 4}
集合 集合中元素的特点:
  • 集合中的元素都是不同的(相同元素集合会自动去重)
  • 集合中的元素是无序排列的
  • 集合中的元素都是不可变类型

0c989aae0fa4dda2c3ba4eccc68d8739.png

关于python中的可变类型与不可变类型我们视频课程给大家介绍,这里先记住就好了。
1# 集合的定义,使用花括号括起来,元素以逗号分隔
2st = {1,"s",("ZERO学堂",5)}
3print(type(st))
4#output: 
集合中的元素必须是可变类型:
1st = {1,"s",["ZERO学堂",5]}
2print(type(st))
3# TypeError: unhashable type: 'list'
4# 集合中的元素必须是不可变类型,这里放入了列表,列表是可变类型,因此报错:unhashable
向集合中添加元素:add方法
1st = {1,"s",("ZERO学堂",5)}
2st.add("a")
3print(st)
4#putput:{1, 'a', ('ZERO学堂', 5), 's'}
add方法只能一次新增一个元素,采用元组的形式一次新增多个值:
1st1 = {"a",1,2,"s",("ZERO学堂",5),"英语","数学","体育"}
2t = (5,6)
3st1.update(t)
4print(st1)
清空集合:clear方法
1st = {1,"s",("ZERO学堂",5)}
2st.clear()
3print(st)
4# output:set()——空集合
删除集合元素:pop方法【随机】删除集合中的一个元素
1st = {"a",1,2,"s",("ZERO学堂",5)}
2st.pop()
3print(st)
4# output:{2, ('ZERO学堂', 5), 'a', 's'}
5# 注意:pop是[随机]中集合中删除一个元素
remove方法【指定删除】某个元素,删除的元素不存在会报错
1st = {"a",1,2,"s",("ZERO学堂",5)}
2st.remove("s")
3print(st)
4#output:{1, 2, 'a', ('ZERO学堂', 5)}
discard方法,删除的元素在集合中不存在是不会报错
1st = {"a",1,2,"s",("ZERO学堂",5)}
2st.discard("asss")#删除的元素在集合中不存在,但是不会报错
3print(st)
集合的交集:intersection(使用&符号也行)
1st1 = {"a",1,2,"s",("ZERO学堂",5),"英语","数学","体育"}
2st2 = {"英语","数学","体育"}
3print(st1.intersection(st2))
4#output:{'数学', '英语', '体育'}
集合的并集:union(或者使用符号|)
1st1 = {"a",1,2,"s",("ZERO学堂",5),"英语","数学","体育"}
2st2 = {"英语","数学","体育","化学"}
3print(st1.union(st2))
4print(st1|st2)
5#output:{'化学', 1, 2, '数学', ('ZERO学堂', 5), '体育', 's', 'a', '英语'}
6#        {'化学', 1, 2, '数学', ('ZERO学堂', 5), '体育', 's', 'a', '英语'}
差集:使用difference方法(或者使用符号-)
1st1 = {"a",1,2,"s",("ZERO学堂",5),"英语","数学","体育"}
2st2 = {"英语","数学","体育","化学"}
3print(st2-st1)
4#output:{'化学'}
交叉补集:symmetric_difference方法(图中黄色的部分)
1st1 = {"a",1,2,"s",("ZERO学堂",5),"英语","数学","体育"}
2st2 = {"英语","数学","体育","化学"}
3print(st1.symmetric_difference(st2))
4#output:{'a', 1, 2, 's', '化学', ('ZERO学堂', 5)}

4311da901e50c3baf2f99759ccd963e8.png

c9bcdf82b3a492e98dc449a37df1a039.gifpython中的常用数据类型及其方法就介绍这么多啦。下一期我们采用视频课程的形式简单总结一下数据类型部分,然后我们就进入到python函数的学习了。 a83f24fdcdc490dc3dad4e8684f519f9.gif From zero to hero扫码关注我 896b21b4d4017bda52e56449ac47ba1a.png a83f24fdcdc490dc3dad4e8684f519f9.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值