python容器数据类型
1 列表
使用率最多的容器数据类型,类型是list,列表数据有序
创建:[1,2,3]
转换:list("abc")
修改:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #增加元素 a = [] a.append( 1 ) a.append( 2 ) a.extend([ 3 , 4 , 5 ]) #把一组数据,加入列表 a.insert( 1 , '张三' ) #把一个数据,插入到指定的位置 #修改元素 a[ 1 ] = 8 #删除元素 a.pop() #把最右侧的数据移除 a.remove( "张三" ) #移除指定数据 a.pop( 2 ) #移除指定下标的数据 a.clear() #移除全部数据 #排序 a.sort() #升序排序 a.sort(key = sort) #可以自定义排序算法 |
使用列表
索引:返回1个内容,如果越界就报错
切片:返回多个内容,如果越界不报错,返回list
2.元组
元组可以理解为不可变的有序列表,数据类型:tuple
创建:(1,2,3)
转换:tuple([3,2,1])
使用元组:索引,切片
3.字典
是key-value映射结构(k-v结构),有序,数据类型:dict
创建:a={"name":"张三","age":18}
转换 b=dict(name="李四",age=19)
相关操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #添加数据 a[ "tel" ] = "13110010002" #修改数据 a[ "name" ] = “王五” a.update(name = "赵四" ) #删除数据 del a[ "age" ] a.pop( "age" ) a.clear() #删除所有数据 a.keys() #获取所有的key a.values() #获取所有的value a.item() #获取所有的键值对 a = {} print { type (a)} #类型是字典 dict |
4.集合
集合可以理解为KV一致的字典,集合自带去重效果,无序,数据类型 set
创建:a={1,2,3,4,5,"a"}
转换:set([1,2,3,4])
添加:a.add(7)
删除: a.pop() 无序删除 a.remove(2)
4.2 可哈希性
是不是所有内容都可以放入集合?
- 可哈希的内容才能放入集合
是不是所有的内容都可以作为字典的key?
- 可哈希的内容才能作为字典的key
能放入集合,能作为字典的key就是可哈希性
可哈希:比如字典、整数、元组等不可变数据类型
不可哈希:列表,字典,集合等可变数据类型
如何判断一个数据是否可哈希?
- print(hash("asd"))
5. 面试题:
5.1.列表和元组的异同
相同点:
1.都是有序的
2.里面的元素可以重复
3.里面的元素可以是多种基本数据类型(数字(int,float),字符串)
不同点:
1.列表用[],元组用()
2.列表是可变的可修改,元组不可变不可修改
3.列表不可hash,元组可hash
4.=操作时,列表修改同一份数据,会对原数据造成影响,元组会创建一个副本对原数据无影响
5.2 给一值为数字的字典c={"a":7,"b":2,"c":9,"d":3,"e":1},打印出所有的值,值按升序排列
1 2 3 4 5 6 7 | c = { "a" : 7 , "b" : 2 , "c" : 9 , "d" : 3 , "e" : 1 } d = c.values() e = list (d) e.sort() print (f "升序e={e}" ) e.sort(reverse = True ) print (f "降序e={e}" ) |
5.3 有字符串 a="abbaccadd",编写代码计算每个字符出现的次数
答案1:
1 2 3 4 5 6 7 8 9 10 | a1 = "abbccadcdbdcdd" b1 = set (a1) for i in b1: count = 0 word = i for j in a1: if word = = j: count + = 1 print (f "{word}出现了{count}次" ) |
答案2:
1 2 3 4 5 6 7 8 9 | a1 = "abbccadcdbdcdd" dict1 = {} for i in a1: #dict1[i]=a1.count(i) dict1[i] = dict1.get(i, 0 ) + 1 print (dict1) for key in dict1: print (f "{key}:{dict1[key]}" ) |
5.4 有元组 t=(1,2,3,),编写代码,使其变为(1,2,3,4,5,6)
1 2 3 4 5 | t = ( 1 , 2 , 3 ,) t = list (t) t.extend([ 4 , 5 , 6 ]) t = tuple (t) print (t) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)