复杂数据类型有四种:
- 列表
- 元组
- 字典
- 集合
本文先详解列表与元组:
要看字典与集合请点击此处
python复杂数据类型详解(下)字典与集合
创建复杂数据类型的各种姿势:
创建列表的四式
创建元组的两招
创建字典的五式
创建集合的三招
1.列表
1.列表的定义及格式
定义:
列表是一个可修改的,元素以逗号作为分割,以中括号包围的有序序列。
变量=[元素1,元素2,元素3,…]
用代码来理解把!
#定义列表
names=["张三","李四","王麻子"]
print(names)
print(type(names))
'''
运行结果
['张三', '李四', '王麻子']
<class 'list'>
'''
2.列表持有的操作与特性
那么可以对列表执行哪些操作呢?
可相加,但不可相减,可遍历,可切片
列表具有哪些特性呢?
有序性,可重复性,可更改
用代码来理解把!
list1=[1,2,3,4]
list2=[3,4,5,6]
#相加性
print(list2+list1)
print("-"*20)
#可更改,并且可重复
list1.append(1)
print(list1)
print("-"*20)
#可以进行切片操作,因为列表是有序的,具有索引下标
print(list1[1:3])
print(list2[1:3])
print("-"*20)
#可遍历性
for i in list1:
print(i)
for i in list2:
print(i)
print("-"*20)
'''
运行结果:
[3, 4, 5, 6, 1, 2, 3, 4]
--------------------
[1, 2, 3, 4, 1]
--------------------
[2, 3]
[4, 5]
--------------------
1
2
3
4
1
3
4
5
6
--------------------
'''
3.列表类型持有方法
(1)增加操作
方法 | 描述 |
---|---|
append | 追加,在列表的尾部加入指定的元素 |
extend | 将指定序列的元素依次追加到列表的尾部(合并),不会去重复内容 |
insert | 将指定的元素插入到对应的索引位上,注意负索引倒序插入,超过索引 |
用代码来理解把!
list1=["hello","hellow","hi"]
list2=["张三","李四","王麻子"]
print(list1)
print(list2)
print("-"*20)
#添加元素
list1.append("我追加了一个元素")
print(list1)
print("-"*20)
#合并列表
list1.extend(list2)
print(list1)
print("-"*20)
#插入元素
list1.insert(0,"我插入了一个元素")
print(list1)
'''
运行结果
['hello', 'hellow', 'hi']
['张三', '李四', '王麻子']
--------------------
['hello', 'hellow', 'hi', '我追加了一个元素']
--------------------
['hello', 'hellow', 'hi', '我追加了一个元素', '张三', '李四', '王麻子']
--------------------
['我插入了一个元素', 'hello', 'hellow', 'hi', '我追加了一个元素', '张三', '李四', '王麻子']
'''
(2)删除操作
方法 | 描述 |
---|---|
pop | 弹出,返回并删除指定索引位上的数据,默认删除索引为-1的数据(从右向左删除) |
remove | 从左往右删除一个指定的元素 |
del | 删除整个列表或列表的数据,del是python内置功能,不是列表独有的 |
用代码来理解把!
list=[1,2,3,4]
#默认删除-1位置的元素
list.pop()
print(list)
print("-"*20)
#指定元素删除,只能从左到右删除,不不能从右到左删除,意味着负数会报错
list.remove(1)
print(list)
print("-"*20)
#既可以删除整个列表,也可以删除列表中部分元素
del list
print(list) # print(list)会报错,因为列表已经被删除,不存在
print("-"*20)
'''
运行结果:
[1, 2, 3]
--------------------
[2, 3]
--------------------
print(list)会报错,因为列表已经被删除,不存在
--------------------
'''
(3)修改操作
方法 | 描述 |
---|---|
lists[index] | lists[index]=’xxx’,通过索引修改内容 |
reverse | 顺序倒序 |
sort | 按照ascii码表顺序进行排序 |
用代码来理解把!
#利用索引修改列表中的内容
list=[2,3,1,4]
list[0]="我修改了一个元素"
print(list)
print("-"*20)
#进行翻转
list.reverse()
print(list)
print("-"*20)
#进行排序,默认reverse参数是True,降序排序
list=["a","A","z","2","6","1"]
list.sort()
print(list)
print("-"*20)
#设置reverse参数,可控制是降序排序还是升序排序
list=["a","A","z","2","6","1"]
list.sort(reverse=True)
print(list)
print("-"*20)
list.sort(reverse=False)
print(list)
'''
运行结果:
['我修改了一个元素', 3, 1, 4]
--------------------
[4, 1, 3, '我修改了一个元素']
--------------------
['1', '2', '6', 'A', 'a', 'z']
--------------------
['z', 'a', 'A', '6', '2', '1']
--------------------
['1', '2', '6', 'A', 'a', 'z']
'''
(4)查找操作
方法 | 描述 |
---|---|
count | 计数,返回要计数的元素在列表当中的个数 |
index | 查找,从左往右返回查找到的第一个指定元素的索引,如果没有找到,报错 |
用代码来理解把!
#计数
list=[1,1,2,3,3,4]
print(list.count(1))
print("-"*20)
#从左往右查找第一个元素,返回他的索引
print(list.index(2))
'''
运行结果:
2
--------------------
2
'''
2.元组
1.元组的定义及格式
定义:
列表是一个不可修改的,元素以逗号作为分割,以圆括号包围的有序序列。
变量=(元素1,元素2,元素3,…)
元组跟列表差异不大,唯一的区别是,元组类型不可更改,这也就是为什么函数中的return返回的值是元组类型,因为函数执行完毕,返回的值不需要更改,所以设置成元组类型!
用代码来理解把!
#创建元组
tup=("张三","李四","王麻子")
print(tup)
print(type(tup))
'''
运行结果:
('张三', '李四', '王麻子')
<class 'tuple'>
'''
2.元组的序列操作
那么可以对元组执行哪些操作呢?
可相加,但不可相减,可遍历,可切片
元组具有哪些特性呢?
有序性,可重复性,不可更改
用代码来理解把!
tup1=(1,2,3,4)
tup2=(3,4,5,6)
#相加性
print(tup2+tup1)
print("-"*20)
#可以进行切片操作,因为元组是有序的,具有索引下标
print(tup1[1:3])
print(tup2[1:3])
print("-"*20)
#可遍历性
for i in tup1:
print(i)
for i in tup2:
print(i)
'''
运行结果:
(3, 4, 5, 6, 1, 2, 3, 4)
--------------------
(2, 3)
(4, 5)
--------------------
1
2
3
4
3
4
5
6
'''
元组中的方法
方法 | 描述 |
---|---|
count | 计数,返回要计数的元素在列表当中的个数 |
index | 查找,从左往右返回查找到的第一个指定元素的索引,如果没有找到,报错 |
del | 在元组中使用del只能删除整个元组,因为元组中的内容不可修改 |
#计数
tup=(1,1,2,3,3,4)
print(tup.count(1))
print("-"*20)
#从左往右查找第一个元素,返回他的索引
print(tup.index(2))
#删除tup元组
del tup
'''
运行结果:
2
--------------------
2
'''
来一波,推送吧!
群号:781121386
群名:人生苦短,我学编程
欢迎大家加入我们,一起交流技术!!!