Python基础(3) 序列和词典

  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)])

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

时间: 2024-07-30 09:31:15

Python基础(3) 序列和词典的相关文章

python基础03 序列

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢thunder424纠错 sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素) 序列可以包含一个或多个元素,也可以没有任何元素. 我们之前所说的基本数据类型,都可以作为序列的元素.元素还可以是另一个序列,以及我们以后要介绍的其他对象. 序列有两种:tuple(定值表: 也有翻译为元组

Python基础系列----序列(列表、元组、字符串)

1.定义                                                                                               1.数据结构:通过某种方式组织在一起的数据元素的集合.这些数据元素可以说数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构是序列. 2.索引:序列中的每个元素被分配一个序号.注意索引默认从0开始. 在python中,内建了6中序列:列表.元组.字符串.unicode字符串.buf

Python基础--通用序列操作

Python 继续 Python包含6种内建的序列,各自是:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.我们将逐步进行介绍. 今天主要介绍一下通用序列操作.放之四海而皆准. 1 索引 全部程序猿都知道,索引下标从零開始.Python也是这样, 索引0指向序列中第一个元素. 可是与C++相比.Python又添加了负索引.最后1个元素的索引是-1,从右至左是-2.-3 - 字符串字面值直接能够索引: >>>'Hello'[1] e 2 分片 分片通过冒号隔开

2015/8/30 Python基础(4):序列操作符

序列是指成员有序排列,可以通过下标偏移量访问的类型.Python序列包括:字符串.列表和元组.序列的每个元素可以指定一个偏移量得到,多个元素是通过切片操作得到的.下标偏移量从0开始计数到总数-1结束. 序列类型操作符这些操作符是对所有序列类型都适用的. 序列操作符  作用 seq[ind]  获得下标为ind的元素 seq[ind1:ind2]  获得下标从ind1到ind2的元素集合 seq * expr  序列重复expr次 seq1 + seq2  连接序列seq1和seq2 obj in

python基础(序列,元祖,列表,字典,对象,类)

1.标准的序列操作: 索引.分片.乘法.判断成员资格.求长度.取最大值和最小值 2.python之删除命令的区别: >>> x ['or', 'not', 'to', 'be', 'or', 'be'] del:删除指定索引的值 >>> del x[0] >>> x ['not', 'to', 'be', 'or', 'be'] pop:默认删除最后一个值 >>> x.pop() 'be' >>> x ['not',

【Python基础】序列(字符串、列表、元组)

1.字符串 str = 'Hello,Stellari!' 2.列表 aList = [2,3,5,7,8] 3.元组 aTuple = ('Hello','Stellari') pList = [('ABC','123'),('DEF','456'),('GHI','789')] 序列类型转换工厂函数 1.list() >>> list('Hello,Stellari!') ['H', 'e', 'l', 'l', 'o', ',', 'S', 't', 'e', 'l', 'l', 

python基础03序列

sequence 序列 sequence序列是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于没有引入对象的概念,暂时说元素) 序列可以包含一个或多个元素,也可以没有任何元素 我们之前所说的基本数据类型,都可以作为序列的元素.元素还可以是另一个序列,以及我们以后的其他对象. 序列有两种:tuple(定值表:也叫元组):和list(列表) s1 = (2,1.3,'love',5.6,9,False) #是一个tuples2 = [True,5,'smile'] #是一个list prin

python基础(三)序列

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢thunder424纠错 sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素) 序列可以包含一个或多个元素,也可以没有任何元素. 我们之前所说的基本数据类型,都可以作为序列的元素.元素还可以是另一个序列,以及我们以后要介绍的其他对象. 序列有两种:tuple(定值表: 也有翻译为元组

python基础教程_学习笔记2:序列-2

序列-2 通用序列操作 序列相加 通过加号对列表进行连接操作: 列表 >>> [1,3,4]+[2,5,8] [1, 3, 4, 2, 5, 8] 字符串 >>> '134'+'258' '134258' 元组 >>> (1,2,3)+(2,5,8) (1, 2, 3, 2, 5, 8) 元素数据类型不同的列表 >>> [[1,3],[3,9]]+[[2,2],'abc'] [[1, 3], [3, 9], [2, 2], 'abc'

python基础教程_学习笔记8:序列_练习与总结_1

序列_练习与总结 每次处理一个字符 任务: 用每次处理一个字符的方式处理字符串. 方案: 可以创建一个列表,列表的子项是字符串的字符.python实际上并没有一个特别的类型来对应"字符"并以此和字符串区分开来.可以调用内建的list,用字符串作为参数: thelist=list(thestring) 也可以不创建一个列表,直接用for语句完成对该字符串的循环遍历: for c in thestring: do_something_with(c) 或者使用列表推导中的for来遍历: re