列表、元组、字典、集合 详解

列表

写法:[元素1,元素2,元素3,…]

支持的方法&操作

列表取值
列表是有序的,可通过索引来取值

list = ['小明','小黄','小红']
print(list[1])

注意:列表索引是从0开始的,所以上述取得索引‘1‘是第二个元素‘ 小黄‘

切片

list = ['小明','小黄','小红','胖虎','小兰']

#切片方法:list[a:b]
#a和b都填写,代表从a开始,b前面一个元素结束
print(list[1:4])    #输出结果:['小黄', '小红', '胖虎']

#前面a不填写,表示从索引0开始
print(list[:4])    #输出结果:['小明', '小黄', '小红', '胖虎']

#后面b不填写,表示到最后一个结束
print(list[1:])   #输出结果:['小黄', '小红', '胖虎', '小兰']

#步长表示法:list[a:b:c] c代表步长,默认为1
print(list[1:4:2]) #输出结果:['小黄', '胖虎']
print(list[::-1])  #倒序输出:['小兰', '胖虎', '小红', '小黄', '小明']

#负数表示倒数第多少位的元素
print(list[:-1])  ##打印最后一个元素之前的内容 输出结果:['小明', '小黄', '小红', '胖虎']

# print(list[1:])   ##打印第一个元素之后的内容
# print(list[:-1])  ##打印最后一个元素之前的内容
# print(list[::-1])  ##倒序输出

添加元素

list = ['小明','小黄','小红','胖虎','小兰']

#append 追加到列表的末尾
list.append('静香')
print(list)            #输出结果:['小明', '小黄', '小红', '胖虎', '小兰', '静香']

#insert插入元素到指定位置,传入参数(索引,元素值)
list.insert(2,'小新')
print(list)             #输出结果:['小明', '小黄', '小新', '小红', '胖虎', '小兰']

修改元素

list = ['小明','小黄','小红','胖虎','小兰']

#更改列表中元素的值,直接给元素赋值即可
list[1] = '小鹏'
print(list)         #输出结果:['小明', '小鹏', '小红', '胖虎', '小兰']

删除元素

list = ['小明','小黄','小红','胖虎','小兰']


#del根据元素索引来删除
del list[1]
print(list)                       #输出结果:['小明', '小红', '胖虎', '小兰']

#remove传入元素的值来删除
list.remove('小黄')             #也可以是list.remove(list[1])
print(list)                    #输出结果:['小明', '小红', '胖虎', '小兰'],相比del可以不知道索引的情况下进行删除

#pop默认删除最后一个元素,输入索引后,删除指定元素
list.pop()
print(list)                       #输出结果:['小明', '小黄', '小红', '胖虎']

list.pop(1)
print(list)                          #输出结果:['小明', '小红', '胖虎', '小兰']

查找元素索引

list = ['小明','小黄','小红','胖虎','小兰']

#index 查找元素的索引
print(list.index('小红'))     #输出结果:2

统计同名元素个数

list = ['小明','小黄','小红','胖虎','小兰','胖虎','胖虎']

#count 统计元素个数
print(list.count('胖虎'))     #输出结果:3

清空列表

list = ['小明','小黄','小红','胖虎','小兰']

#clear 清空列表
list.clear()
print(list)                    #输出结果:[]

反转列表

list = ['小明','小黄','小红','胖虎','小兰']

#reverse 反转列表
list.reverse()
print(list)                    #输出结果:['小兰', '胖虎', '小红', '小黄', '小明']

列表排序

list = ['小明','小黄','小红','胖虎','小兰','Xiaowang','1152','anli']

#sort 按ASCII对列表进行排序
list.sort()
print(list)                    #输出结果:['1152', 'Xiaowang', 'anli', '小兰', '小明', '小红', '小黄', '胖虎']


合并列表

list1 = ['小明','小黄','小红','胖虎','小兰']
list2 = ['小芳','大雄']

#extend合并列表2到列表1中
list1.extend(list2)
print(list1)                               #输出结果:['小明', '小黄', '小红', '胖虎', '小兰', '小芳', '大雄']

复制列表

import copy
list1 = ['小明','小黄','小红','胖虎',['新一','小兰']]

#copy 拷贝列表,浅拷贝,只拷贝第一层(高版本的python好像变成深拷贝了)
list2 = list1.copy()
print(list2)               #输出结果:['小明', '小黄', '小红', '胖虎', ['新一', '小兰']]
list1[1] = '小新'
list1[-1] = ['新一','灰原哀']
print(list1)                  #输出结果:['小明', '小新', '小红', '胖虎', ['新一', '灰原哀']]
print(list2)                  #输出结果:['小明', '小黄', '小红', '胖虎', ['新一', '小兰']]

#copy.deepcopy 深拷贝
list2 = copy.deepcopy(list1)

#通过列表切片来复制
list2 = list1[:]
print(list2)                     #输出结果:['小明', '小黄', '小红', '胖虎', ['新一', '小兰']]

元组

写法:names = (元素1,元素2,元素3…)
它只有两个方法,一个是count,一个是index。
元组一旦被创建,则不可以再修改,所以又叫只读列表。

字典

写法
info = {key_1 :value_1 ,key_2 :value_2,…}
字典的特性:
**·**字典是无序的
**·**key必须是唯一的,so天生去重

查字典中的值
根据key来获取到对应的value

info = {“学生1” :“小明” ,
“学生2” :“小红”,
“学生3” :“小白”,

print(info[“学生2”]) #输出结果:“小红”

使用get方法获取key对应的值,如果key存在,则取出对应的值,如果不存在则返回None
print(info.get(“学生2”))
print(info.get(“学生4”))

修改/新增字典中的值

如果key存在则修改,如果key不存在则新增
info[“学生3”] = “小王”
info[“学生4”] = “小黑”
print(info)

删除字典中的元素
del删除
del info[“学生1”]

pop删除
info.pop(“学生1”)

.keys获取字典中所有的key
print(info.keys())

.values获取字典中所有的value
print(info.values())

update合并两个字典
a.update(b) 把字典b合并到字典a,如果存在相同的key,则更新成b的值,如果不存在则新增。

items把字典转成列表,key和value组成一个元组

集合

集合是一个无序的,不重复的数据组合,它的主要作用如下:
**·**去重,把一个列表变成集合就自动去重了
**·**关系测试,测试两组数据之间的交集、差集、并集等关系

常用操作
s = set([3,5,6,9]) #创建一个数值集合
t = set(“hello”) #创建一个唯一字符的集合

求交集
list_1.intersection(list_2)

#求交集
list_1 = set([1,3,5,6,9])
list_2 = set([2,5,6,8,10])
print(list_1.intersection(list_2))     #输出结果:{5, 6}

求并集
list_1.uiion(list_2)

#求并集
list_1 = set([1,3,5,6,9])
list_2 = set([2,5,6,8,10])
print(list_1.union(list_2))     #输出结果:{1, 2, 3, 5, 6, 8, 9, 

求差集
list_1.difference(list_2)

#求差集
list_1 = set([1,3,5,6,9])
list_2 = set([2,5,6,8,10])
print(list_1.difference(list_2))     #输出结果:{1, 3, 9}

判断是否是子集
list_1.issubset(list_2)

判断是否是父集
list_1.issuperset(list_2)

求对称差集
list_1.symmetric_difference(list_2)

#求对称差集
list_1 = set([1,3,5,6,9])
list_2 = set([2,5,6,8,10])
print(list_1.symmetric_difference(list_2))     #输出结果:{1, 2, 3, 8, 9, 10}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值