在python学习中,本人整理了一些简洁的列表、字典、元组、集合的常用方法及属性,以及它们之间如何进行转换,希望对各位自学的同学有所帮助。
列表
list1 = [1,2,3,4,"我爱你",[10.20.30]]
#(1) 列表的加法 与 乘法
list1 = [10,20,30]
list2 = [5,6,7]
list1+list2 # [10, 20, 30, 5, 6, 7]
list * 3 # [10, 20, 30, 10, 20, 30, 10, 20, 30]
#(2) append 用于向列表末尾添加元素
a = [1,2,3]
a.append(4) # [1,2,3,4]
#(3) insert 第一个参数是插入的位置,第二个参数是要插入的对象
b = [1,2,3]
b.insert(2,[13,15]) # [1, 2, [13, 15], 3]
#(4) clear 清空列表
#(5) remove 从列表移除元素 (若列表中有重复元素,remove函数只会移除匹配到的第一个)
c= [1,2,3,1]
c.remove(1)
# [2, 3, 1]
#(6) pop 用于移除列表中指定位置的元素,并返回要移除的元素,默认情况下,移除最后一位
c= [1,2,3,1]
c.pop(1)
# [1, 3, 1]
# (7) index 返回所有匹配的元素的索引,第一个参数是等查找对象,第二个参数是先查找的开始范围,第三个参数是查找的结束范围。
c= [1,2,3,1]
c.index(1) # 0
#(8) reverse 将列表反向排列
c= [1,2,3,1]
c.reverse() # [1, 3, 2, 1]
#(9) extend 在列表末尾添加另一个列表
# 与append 相比,extend可以一次性添加多个元素
# *** extend 与 + 都可以实现拼接列表,但是与+ 相比,extend是在源列表的基础上进行列表添加,+ 是两个列表组合,源数据不变
a = [10,20,30]
a.extend([1,3,4,6]) # [10, 20, 30, 1, 3, 4, 6]
#(10) copy 用于创建列表的副本
a = [10,20,30]
b= a.cpoy()
#(11) sort 排序 常见 ASCII 码 的大小规则,0~9 <A-Z < a-z
a.sort(reverse = True) #降序排列
#(12) count 统计列表中统计某个元素出现的次数
a = [10,20,30,20,20]
a.count(20) # 3
元组
元组中的元素不可修改,其他的方法和列表一样
集合
集合是无序的,元素是唯一的。
排列是随机的
创建集合
1.变量名=set(元素) 字符串/列表/元组/字典
a =set("123")
a =set([1,2,3])
a =set((1,2,3))
2. 变量名={元素,元素,。。。。。} 元组/字符串/数字
a = {"123",(1,2,3),3}
# (1) add 添加
a=={1,2,3}
a.add("你好") # {1, 2, 3, "你好"}
# (2) update 可以将集合合并
b = {'w','a','d'}
a.update(b) # {1, 2, 3, 6, 'a', 'd', 'w'}
# (3) remove pop discard
# remove 删除集合中的元素,如果有直接删除,没有程序报错
# pop 随机删除程序中的元素,如果有直接删除,没有程序报错
# discard 删除集合中的元素,如果有直接删除,没有不做任何操作
# (4) 集合的交集并集
s1 = {1,2,3,5}
s2 = {1,2,6,7}
s1 & s2 交集
s1 | s2 并集
字典
字典的建必须是不可变类型,且不能重复
键可以是任意不可变类型(元组/字符串/数字)
创建字典
a={
"姓名":"科比",
"年龄":"18",
1:18,
(1,2,3):"123 "
}
# 括号里面是元组,元组在用列表
b =dict((["年龄","18"],["名字":"kebi"]))
# 字典 的增删改查
d= {"名字":"科比","年龄":18}
#增加
d["技能"] = "python技能" # {'名字': '科比', '年龄': 18, '技能': 'python技能'}
#删除
del d["技能"]
#修改
d["技能"] = "java技能"
#查
d["技能"]
字典的方法
d= {"名字":"科比","年龄":18}
d.get("名字") # 科比
d.keys() # dict_keys(['名字', '年龄']) 返回所有键
d.items() # 以列表的的形式返回字典中的所有键值对 dict_items([('名字', '科比'), ('年龄', 18)])
d.values() # 以列表的的形式返回字典中的所有值对 dict_values(['科比', 18])
d.clear() #清空字典
d.copy() #创建字典副本,修改原字典对象 不会影响副本
d.fromkeys(("年龄","性别"),1)
# 用于创建一个新字典, 第一个参数是一个序列(列表/字典/集合),第二个参数是任何数据类型,作为每个键的值
# {'年龄': 1, '性别': 1}
d.pop("名字") # 用于从字典中移除指定键,并返回该键所对应的值
d.popitem() # 函数用于从字典中杀出最后一项,并以元组的形式返回该项所有对应的键和值 ("年龄",18)
d.setdefault("性别","男") # 设置键的默认值,若字典中该键已经存在,则忽略。
d.update() 将字典2的值更新到字典1 ,字典2的键在字典1 存在,则对字典1 进行修改,没有则添加
数据类型之间的转换
str()
int()
float()
bool()
# 1.容器类型转换bool :
# 容器类型数据: 字符串,列表,元组,字典,集合
# 2. 非容器类型数据: 数字类型,布尔类型
# 容器中为空 ---》 False
# 容器有元素 ---》 True
# 2.数字类型转换bool :
# int 类型中 0为false 其他为真
# float 类型中 0.0为false 其他为真
list()
# 数字类型是非容器类型,不能转换为列表
# 字符串转列表时,会把字符串中的每一个字符当作列表的元素
# 字典转列表时,只保留字典中的键
# 集合转列表时,结果是无序的,因为集合本身就是无序的
tuple() 与list() 规则相同
set()
# 1 数字类型是非容器类型,不能转换为集合
# 2 字符串、列表、元组转集合时,结果是无序的
# 3 字典转列表时,只保留字典中的键,结果是无序的
dict()
# 1 数字类型是非容器类型,不能转换为集合
# 2 字符串不能转,因为字符串不能生成二级容器
# 3 列表类型转字典类型,列表必须为等长的二级容器,子容器中的元素个数必须为2集
# 4 集合不能转字典类型