码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础(3) 序列和词典

时间:2020-02-09 16:42:47      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:根据   区别   get   def   man   color   ken   count   family   

  Python中最基本的数据结构是序列,序列中的每个元素被分配了一个序号即元素位置,也叫索引(从0开始),最后一个元素也可以标记位-1。

  序列的元素可以是之前讲的所有基础数据类型,也可以是另一个序列,还可以是对象(后面介绍)。

  最常用的序列有两类:元素(tuple)和列表(list)。两者的区别:列表可修改而元组不行。

1 列表

    1.1 访问列表

  通过下标,格式:[idx1][idx2][idx3]

animal = [Dog, Cat, Pig, [Duck, Chicken, Bird]]
print(animal[1])    # Cat
print(animal[3][1]) # Chicken
print(animal[-1])   # [‘Duck‘, ‘Chicken‘, ‘Bird‘]

    1.2 操作列表

  1.2.1 修改列表元素

  语法和访问列表元素类似,指定列表名和要修改元素的索引,再指定新值。

animal = [Dog, Cat, Pig, [Duck, Chicken, Bird]]
animal[1] = Sheep
# animal[3][1] = ‘Goose‘    # [‘Dog‘, ‘Sheep‘, ‘Pig‘, [‘Duck‘, ‘Goose‘, ‘Bird‘]]
animal[-1] = Rabbit       # [‘Dog‘, ‘Sheep‘, ‘Pig‘, ‘Rabbit‘]
print(animal)

  1.2.2 添加列表元素

  (1)append( ):在列表末尾追加元素,也可用于动态创建列表。

student = []
student.append(Tom)
print(student)      # [‘Tom‘]

  (2)insert( ):在列表的任何位置添加新元素

animal = [Duck, Chicken, Bird]
animal.insert(2, Dog)
animal.insert(1, Cat)
print(animal)   # [‘Duck‘, ‘Cat‘, ‘Chicken‘, ‘Dog‘, ‘Bird‘]

  1.2.3 删除列表元素

  (1)pop( ):移除列表中的一个元素(默认是末尾元素),可以指定元素索引,并且返回该元素的值

  (2)del( ):如果知道要删除的元素在列表中的位置,可使用del语句删除,元素一旦被删除就再也无法访问。

  (3)remove( ):当只知道元素值时,使用该方法

animal = [Duck, Cat, Chicken, Dog, Bird]
print(animal.pop())     # Bird 返回值,默认删除末尾元素
print(animal.pop(1))    # Cat 返回值,指定索引
print(animal)   # [‘Duck‘, ‘Chicken‘, ‘Dog‘] 删除后的列表
del animal[0]   # 删除索引0,无返回值
print(animal)   # [‘Chicken‘, ‘Dog‘]
animal.remove(Dog)    # 删除元素,无返回值
print(animal)   # [‘Chicken‘]

  1.2.4 查找列表元素

  (1)in(存在):如果存在返回true,否则返回false

  (2)not in(不存在):如果不存在返回true,否则返回false

animal = [Duck, Cat, Chicken, Dog, Bird]
print(Chicken in animal)      # True
print(Chicken not in animal)  # False

    1.3 列表函数

students = [Jack, Tom, John, Susan, Tom]
print(len(students))    # 返回列表元素个数 5
print(max(students))    # 返回元素最大值 Tom
print(min(students))    # 返回元素最小值 Jack
print(students.count(Tom))    # 返回某个元素出现的次数 2
print(students.index(Tom))    # 第一个匹配项的位置 1
students.extend([Frank, Lucy])  # 扩展列表 [‘Jack‘, ‘Tom‘, ‘John‘, ‘Susan‘, ‘Tom‘, ‘Frank‘, ‘Lucy‘]
print(students) 
students.reverse()      # 反转列表 [‘Lucy‘, ‘Frank‘, ‘Tom‘, ‘Susan‘, ‘John‘, ‘Tom‘, ‘Jack‘]
print(students)
students.sort()     # 列表元素排序,默认升序 [‘Frank‘, ‘Jack‘, ‘John‘, ‘Lucy‘, ‘Susan‘, ‘Tom‘, ‘Tom‘]
print(students)
students.clear()    # 清空列表 []
print(students) 

2 元组

    2.1 元组操作

  Python的元组和列表类似,不同之处在于元组不能被修改,但可以进行索引和连接操作(方法与列表相同),元组使用小括号创建,列表使用方括号创建。

students = (Jack, Tom, John, Susan, Tom)
print(students[2])  # John 索引元组
del students        # 彻底删除 name ‘students‘ is not defined 不可以删除某个元素
print(students)

    2.2 元组函数

students = (Jack, Tom, John, Susan, Tom)
print(len(students))    # 返回列表元素个数 5
print(max(students))    # 返回元素最大值 Tom
print(min(students))    # 返回元素最小值 Jack
print(tuple([1, 2, 3, 4]))  # 将列表转换为元组 (1, 2, 3, 4) 

3 字典

  另一种可变容器类型,可以存储任意类型对象。列表元素通过索引进行修改,如果当前元素的顺序发生变化,还需要修改索引才能成功完成元素修改。而字典是通过键值查找元素,既能存储多个数据,又能很方便准确的定位元素。

  3.1 字典操作

  (1)访问字典元素:根据键访问

  (2)修改字典元素:通过key找到具体元素后直接赋值

  (3)添加字典元素:只要添加的键在字典中不存在,就会新增这个元素

  (4)删除字典元素:del语句既可以删除指定字典元素(同列表),也可以删除整个字典;clealr()方法清空整个字典,字典还在但为空,del操作后字典不存在。

s = {name: Bob, age: 18, sex: Male}
print(s)            # 访问字典 {‘name‘: ‘Bob‘, ‘age‘: 18, ‘sex‘: ‘Male‘}
print(s[sex])     # 访问字典元素 18
s[age] = 25       # 修改字典元素 {‘name‘: ‘Bob‘, ‘age‘: 25, ‘sex‘: ‘Male‘}
print(s)
s[Address] = Shanghai   # 添加元素 {‘name‘: ‘Bob‘, ‘age‘: 25, ‘sex‘: ‘Male‘, ‘Address‘: ‘Shanghai‘}
print(s)
del s[name]   # 删除字典中键值为‘name‘的元素 {‘age‘: 25, ‘sex‘: ‘Male‘, ‘Address‘: ‘Shanghai‘}
print(s)
s.clear()   # 清空字典 {}
print(s)
del s
print(s)    # 删除字典 name ‘s‘ is not defined

  3.2 字典函数和方法

  (1)基本方法

s = {name: Bob, age: 18, sex: Male}
print(len(s))   # 返回字典中元素个数 3
print(str(s))   # 将字典转换为字符串 {‘name‘: ‘Bob‘, ‘age‘: 18, ‘sex‘: ‘Male‘}
print(type(s))  # <class ‘dict‘>
print(type(str(s)))     # 查看类型 <class ‘str‘>

  (2)dict.fromkeys(seq, value)创建一个新字典,以序列seq中元素做键值,value为字典所有键对应的初始值

seq = (name, age, sex)
dict1 = dict.fromkeys(seq)
print(新字典为:, dict1)   # 新字典为: {‘name‘: None, ‘age‘: None, ‘sex‘: None}
dict2 = dict.fromkeys(seq, jack)
print(新字典为:, dict2)   # 新字典为: {‘name‘: ‘jack‘, ‘age‘: ‘jack‘, ‘sex‘: ‘jack‘}

  (3)dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default

  (4)key in dict如果键在字典中则返回true,否则返回false

  (5)dict.keys( )以列表返回一个字典所有键

  (6)dict.values( )以列表返回一个字典所有值

dict1 = {name: tome, age: 18}
print(age键的值为:, dict1.get(age, 25))     # age键的值为: 18
print(sex键的值为:, dict1.get(sex, ))    # sex键的值为: 男
print(dict1.keys())     # dict_keys([‘name‘, ‘age‘])
print(dict1.values())   # dict_values([‘tome‘, 18])
print(dict1.items())    # dict_items([(‘name‘, ‘tome‘), (‘age‘, 18)])

Python基础(3) 序列和词典

标签:根据   区别   get   def   man   color   ken   count   family   

原文地址:https://www.cnblogs.com/wisefaith/p/12287320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!