Python语言基础5 数据类型

列表list增删改查排序、元组tuple、字典dict增删改查和len()、keys、values、items、setdefault、enumerate()

1、列表list

格式: 列表名 = [元素1, 元素2, ...]

列表可以保存任意的数据类型

支持下标索引: 有序的数据类型

定义一个特殊的列表-> 空列表

my_list = []

my_list = list()

查看类型 type(my_list)

计算元素个数 len(my_list)

2、列表的相关操作"增"、"删"、"改"、"查"

<1>添加元素("增"append, extend, insert)

list.append(object)向列表添加元素  (添加在列表最后面)

list.extend(iterable)将另一个集合中的元素逐一添加到列表中

(把iterabla可迭代对象进行最小单元拆分, 依次的保存到列表中)

list.insert(index, object) 在指定位置index前插入元素object,插入后的下标是index(向指定位置插入数据)

<2>修改元素("改")

格式: 列表名[下标索引] = 数值

修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改

<3>查找元素("查"in, not in, index, count)

python中查找的常用方法为:

  in(存在),如果存在那么结果为true,否则为false

  not in(不存在),如果不存在那么结果为true,否则false

  列表名.index(object,start,end)在(默认整个列表,可以指定索引)列表中查找如果在返回索引值,如果不在会报一个异常.

    列表名.count(object)返回 对象在列表中出现的次数  非0则存在,0则不存在

Python中非零即真 零则假

if my_list.count(234):

    # 获取下标

    index = my_list.index(234)

    print(index)

else:

    print("不存在")

if 1:

    print("真")

<4>删除元素("删"del, pop, remove)

列表元素的常用删除方法有:

  del:根据下标进行删除

      格式: del 列表名[下标索引]或者del(列表名[下标索引])

  pop:删除最后一个元素

      格式: pop(下标索引) 删除指定的元素

      格式: pop() 默认删除最后一个,,并且返回所删除的数据

  remove:根据元素的值进行删除

      格式: 列表名.remove(元素值)

<5>排序(sort, reverse)改变列表本身

sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。

列表.sort()或者 列表.sort(reverse=False) (升序) 从小到大

列表.sort(reverse=True)(降序) 从大到小

reverse方法是将list逆置

列表.reverse()

<6>排序sorted(iterable,key,reverse)和reversed(object):重新定义一个列表接收,原列表不变

newList=sorted(列表)或者 newList=sorted(列表,reverse=False) (升序) 从小到大

newList=sorted(列表,reverse=True) (降序) 从大到小

ret = reversed(object)

newList= type(ret)

3、元组tuple

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

元组和列表的不同点:

列表是可变的的数据类型(增删改查)

元组是不可变的数据类型(查)

元组和列表的相同点:

保存数据, 有序的数据类型

定义一个特殊的元组 -> 空元组 my_tuple = ()

定义一个特殊的元组 -> 有且只有一个元素 my_tuple = (3.14,)

查找元素("查"in, not in, index, count)

  in(存在),如果存在那么结果为true,否则为false

  not in(不存在),如果不存在那么结果为true,否则false

              index和count与字符串和列表中的用法相同

              tuple.index(x,start,end)在某个下标区间(左闭右开)内通过元素查找(默认在整个元组中查找),返回元素的下标,没找到就报错

              tuple.count(x) 在整个元组中通过元素查找返回 对象在元组中出现的次数,非0则存在,0则不存在

4、字典dict

格式: 字典名 = {"name": "小明"}

"name" -> 键 key,"小明" -> 值 value,"name": "小明" -> 键值对

(key value) -> 元素

定义一个特殊的字典 -> 空字典 my_dict = {} 或 my_dict = dict()

字典的key可以是任意数据类型但是一般都是使用字符串类型(但是不能出现任何可变的数据类型)

key是字典中的唯一标识 (如果key重复了 python只会保留一份)

字典是无序的数据类型,如果一个数据类型支持下标索引就是有序的数据类型

<1>查看元素

  值 = 字典名[key]    通过key 获取value。  若访问不存在的键,则会报错。

  get

dict.get(key, 默认值)

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,如果key存在于dict中 会获取对应的value值。如果key不存在与dict中 会返回默认值 字典不会发生任何改变

info.get('age')

print(info.get('age'))  不存在时输出None   

还可以设置默认值:

age = info.get('age', 18) # 若info中不存在'age'这个键,就返回默认值18

  setdefault

dict.setdefault(key, 默认值)

如果key存在于dict中 会获取对应的value值

如果key不存在与dict中 会返回默认值 而且会把这个key和默认值组成新的键值对添加到字典中

  通过key获取value值的方式有几种?

  01: value = dict[key]

  02: value = dict.setdefault(key)

  03: value = dict.get(key)

<2>修改元素(key存在)  字典名[key]  =  value

字典名[key]  等号重新赋值

<3>添加元素(key不存在) 字典名[key]  =  value

如果在使用 变量名['键'] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素

<4>删除元素del和clear()

del删除指定的元素del有两种用法,一种是del加空格,另一种是del()

del 字典名[key] 或del(字典名[key] )

del 字典名 删除整个字典

字典名.clear() 清空整个字典

<1>len()

len(dict)测量字典中,键值对的个数

<2>keys

dict.keys返回一个包含字典所有KEY的列表

<3>values

dict.values返回一个包含字典所有value的列表

<4>items

dict.items返回一个包含所有(键,值)元祖的列表

<5>has_key (Python3 已取消)

dict.has_key(key)如果key在字典中,返回True,否则返回False

可以使用in代替 

  in(存在),如果存在那么结果为true,否则为false

  not in(不存在),如果不存在那么结果为true,否则false

字符串、列表、元组、字典的区别:

可迭代对象:str、list、tuple

可以使用len函数计算元素格式:str、list、tuple、dict

可变数据类型:list、dict

不可变数据类型:str、tuple

有序的数据类型:str、list、tuple

无序的数据类型:dict

enumerate()

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

不仅仅打印出对应的元素值 而且打印元素值对应的下标索引

for i, value in enumerate(list):

    print(i, value)

Python中的数组包括list、tuple、dict以及set:

list:占用内存小,但是查找速度慢;

dict:(1)dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,找速度都一样;(2)dict的缺点是占用内存大,还会浪费很多内存(3)由于dict是按 key 查找,所以,在一个dict中,key不能重复;key必须是不可变类型(4)dict的第二个特点就是存储的key-value序对是没有顺序的!

你可能感兴趣的:(Python语言基础5 数据类型)