「Python入门」内置数据结构
Python有4种内置数据结构:列表,字典,元组,集合。
不同的数据类型之间可以进行类型转换以达到特殊目的,比如将list
先转成set
,以达到去重的目的,之后再转回list
。
列表(List)
列表的特征
- 列表中的每一个元素都是可变的;
- 列表其实是一个栈;
- 列表中的元素是有序的,也就是说每一个元素都有一个位置;
- 列表可以容纳Python中的任何对象。
Python列表 vs C数组
Python列表 可以存储任何数据类型
list = [11, 22, 3.14, "100", "laowang"]
C语言数组 只能存储相同的数据类型
int nums[] = {1, 2, 3, 4}
列表的操作——增删改查
插入
append( )
append( )
:只能插入最后。
insert( )
insert( )
:可以指定插入位置。
list.insert(指定位置, '插入对象') # 如果指定位置不存在,则在列表的最后插入
例子
fruit = ['pineapple', 'pear']
fruit.insert(1, 'grape') # 第1个元素之前插入,即插入第0个位置
print(fruit)
fruit = ['pineapple', 'pear']
fruit.insert(5, 'grape') # 若指定位置不存在,则在最后插入
print(fruit)
extend( )
extend( )
:可以插入一个列表。
删除
pop( )
pop( )
:删除最后一个。
remove( )
remove( )
:指定删除内容。
list.remove('要删除的对象')
例子
fruit = ['pineapple', 'pear', 'grape']
fruit.remove('grape')
print(fruit)
del
del
:根据下标删除。
del list[a:b]
例子
fruit = ['pineapple', 'pear', 'grape']
del fruit[0:2]
print(fruit)
修改
fruit = ['pineapple', 'pear', 'grape']
fruit[0] = 'banana'
print(fruit)
查找
列表的查找和字符串的切片类似,只要输入元素的相应位置就能返回该位置上的值。列表只接受根据位置查找对应的值,而不允许通过值返回对应位置。
判断元素是否在列表中
in
& not in
列表常用方法
index( )
和字符串使用方法一样。
count( )
和字符串使用方法一样。
sort( )
reverse( )
sorted( )
字典(Dictionary)
字典:类似于现实中的字典,采用名称-内容相对应的形式进行存储,在Python中对应为key-value。
字典的特征
- 字典中的数据必须是以键值对的形式出现的;
- 逻辑上讲,键是不能重复的,而值是可以重复的;
- 字典中的键(key)是不可变的,也就是无法修改的;而值(value)是可变的,也就是可以修改的,可以是任何对象。
字典的操作——增删改查
插入
插入单个元素
NASDAQ_code = {'BIDU':'baidu', 'SINA':'sina'}
NASDAQ_code['YOKU'] = 'youku'
print(NASDAQ_code)
插入多个元素
update( )
NASDAQ_code = {'BIDU':'baidu', 'SINA':'sina'}
NASDAQ_code.update({'FB':'facebook', 'TSLA':'tesla'}) # 将要插入的多个对象封装成一个字典
print(NASDAQ_code)
删除
del
NASDAQ_code = {'BIDU':'baidu', 'SINA':'sina', 'FB':'facebook', 'TSLA':'Tesla'}
del NASDAQ_code['BIDU'] # 通过key来指向整个键值对
print(NASDAQ_code)
修改
NASDAQ_code = {'BIDU':'baidu', 'SINA':'sina', 'FB':'facebook', 'TSLA':'Tesla'}
NASDAQ_code['TSLA'] = 'TESLA' # 通过key来修改value
print(NASDAQ_code)
查找
直接查找
NASDAQ_code = {'BIDU':'baidu', 'SINA':'sina', 'FB':'facebook', 'TSLA':'Tesla'}
print(NASDAQ_code['TSLA']) # 通过key来索引value
注意:查找不到元素时会抛出异常。
get( )
注意:采用get( )
方法时,查找不到不会进行任何输出。
元组(Tuple)
- 可以理解为稳定版(只读)的列表,只能进行查找,不能进行其他操作,查找方式同列表。
- 内置函数
count( )
和index( )
与列表的用法相同。
(1,) # 只有一个变量的元组的输出形式,注意会有一个逗号
集合(Set)
集合的特征
类似于数学上集合的概念,集合中的元素是无序的,不重复的。
集合的操作
集合不能进行切片和索引,只能进行插入和删除。
a_set = {1, 2, 3, 4}
a_set.add(5) # 插入元素
a_set.discard(1) # 删除元素
print(a_set)