您的位置:首页 > 编程语言 > Python开发

Python基础入门——元组、列表、集合、字典的使用方法

2019-05-14 11:13 1121 查看

元组与列表

Python的序列类型包括字符、列表与元组等。

  • 所有序列都支持迭代。
  • 序列表示索引为非负整数的有序对象集合。
  • 字符和元组属于不可变序列,列表可变。数据类型的可变与不可变将在下一篇博客中为大家介绍。

序列类型有12个通用的操作符和函数

操作符 描述
x in s 如果x是s的元素,返回True,否则返回False
x not in s 如果x不是s的元素,返回True,否则返回False
s + t 链接s和t
s * n 或 n * s 将序列s复制n次
s[j] 索引,返回序列的第i个元素
s[i:j] 分片,返回包含序列s第i到j个元素的子序列(不包含第j个元素)
s[i:j:k] 步骤分片,返回包含序列s第i到j个元素以j为步数的子序列
len(s) 序列s的元素个数(长度)
min(s) 序列s中的最小元素
max(s) 序列s中的最大元素
s.index(x[, i[, j] 序列s中从i开始到j位置中第一次出现元素x的位置
s.count(x) 序列s中出现x的总次数

元组

元组(tuple)是最常用的Python序列类型,且一旦创建就不能被修改,元组类型在表达固定数据项、函数多返回值、多变量同步赋值、循环遍历等情况下十分有用。
Python中元组采用逗号和圆括号(可选)来表示。 tuple的定义与索引:


tuple()函数的使用方法:

>>> tuple([1,2,3,4])
(1, 2, 3, 4)
>>> tuple({1:2,6:8})    #针对字典 会返回字典的key组成的tuple
(1, 6)
>>> tuple((1,2,3,4))    #元组会返回元组自身
(1, 2, 3, 4)

列表

列表(list)都可以进行的操作包括增,删,减,查,索引,切片。列表的数据项不需要具有相同的类型。

# 列表(list)
#每个元素可变,元素有序且对应每个位置,可容纳任何对象
this_is_a_list = [1,'Hello world',print(1),True,[1,2]]

this_is_a_list[0]
this_is_a_list[3]
this_is_a_list[-1]
this_is_a_list[-4]

# 列表的增删改查
####增
names = ['xiaohong','xiaoming','xiaozhang']
names.insert('a')    #  报错,需要指定位置
names.insert(1,'xiaoli')    #在指定位置增加元素
names.insert(-1,'xiaowei')

####删
names.remove('xiaowei')
names.remove(names[-2])
del names[-2]
####
names.append('xiaohong')      # 在列表末尾添加新对象
names.extend(this_is_a_list)  # 在列表末尾追加另一个列表
names.count('xiaohong')       # 计数
names.index('xiaohong')       #从列表中找出某个值第一个匹配项的索引位置
####查
names[1]
names[3:]       #看后面几个
names[:3]       # 看前面几个
names[1:3]      #指定几个
# 列表推导式
aa = [i for i in range(1,11)]

a = []
for i in range(1,11):
a.append(i)              # for循环
print(a)

aaa = [i**2 for i in range(1,11)]

aaaa = []
for i in range(1,11):
i **=2                    #  for循环
aaaa.append(i)
print(aaaa)
使用 介绍
list.append(x) 将元素x添加至列表尾部
list.extend(L) 将列表L中所有元素添加至列表尾部
list.insert(index,x) 在列表指定位置index处添加元素x
list.remove(x) 在列表中删除首次出现的制定元素
list.popp([index]) 删除并返回列表对象指定位置的元素
list.clear() 删除列表中所有元素,但保留列表对象
list.index(x) 返回值为x的首个元素的下标
list.count(x) 返回指定元素x在列表中的出现次数
list.reverse() 对列表元素进行原地倒序
list.sort() 对列表元素进行原地排序(升序、降序)
list.copy() 返回列表对象的浅拷贝

除list.copy()外,列表方法均不会改变列表的id,也不会新建列表。

集合与字典

集合

集合数据类型是没有顺序的简单对象的聚集。且集合中元素不重复,只能是固定数据类型,例如:整数、浮点数、字符串、元组等,列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。

  • Python集合数据类型包括可变集合对象(set)和不可变集合对象(frozenset)
  • 集合的定义:
    {a,[b,...,n]}
  • 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

1、创建集合对象示例:

>>>{1,2,1}
{1,2}
>>>{1,'a',True}
{True,'a'}
>>>{1,True}
{True,1}
>>>set()
set()
>>>set('Hello')
>{'H','e','o','l'}

集合元素是无序的,集合的打印效果与定义顺序可以不一致。使用集合类型能够过滤掉重复元素。

2、集合操作符

集合类型有10个操作符。

操作符 方法
S │T 返回一个新集合,包括在集合S和T中的所有元素
S - T 返回一个新集合,包括在集合S但不在T中的元素
S & T 返回一个新集合,包括同时在集合S和T中的元素
S ^ T 返回一个新集合,包括集合S和T中的非相同元素
S <= T 或 S < T 返回True/False,判断S和T的子集关系
S >= T 或 S > T 返回True/False,判断S和T的包含关系
S │= T 更新集合S,包括在集合S和T中的所有元素
S -= T 更新集合S,包括在集合S但不在T中的元素
S &= T 更新集合S,包括同时在集合S和T中的元素
S ^= T 更新集合S,包括集合S和T中的非相同元素
>>>s1 = {1,2,3}
>>>s2 = {2,3,4}
>>> s1|s2
{1,2,3,4}
>>> s1&s2
{2,3}
>>> s1 - s2
{1}
>>> s1 ^ s2
{1,4}
>>> s1.union(s2)
{1,2,3,4}
>>> s1.intersection(s2)
{2,3}
>>> s1.difference(s2)
{1}
>>> s1.symmetric_difference(s2)
{1,4}

3、集合操作函数与方法

操作函数 方法
S.add(x) 如果x不在集合S中,将x增加到S
S.discard(x) 移除S中元素x,如果x不在集合S中,不报错
S.remove(x) 移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear() 移除S中所有元素
S.pop() 随机返回S的一个元素,更新S,若S为空产生KeyError异常
S.copy() 返回集合S的一个副本
len(S) 返回集合S的元素个数
x in S 判断S中元素x, x在集合S中,返回True,否则返回False
x not in S 判断S中元素x, x不在集合S中,返回False,否则返回True
set(x) 将其他类型变量x转变为集合类型

集合的长度、最大值、最小值、元素和

  • 通过内置函len()、max()、min()、sum(),可以获得集合的长度、元素最大值、元素最小值、元素之和
    集合类型主要用于三个场景:成员关系测试、元素去重和删除数据项。

4、映射类型

映射类型是“键-值”数据项的组合,每个元素是一个键值对,即元素是(key,value),元素之间是无序的。键值对(key,value)是一种二元关系。在Python中,映射类型主要以字典(dict)体现。

字典

通过任意键信息查找一组数据中值信息的过程叫映射,Python语言中通过字典实现映射。Python语言中的字典可以通过大括号建立,建立模式:

{<键1>:<值1>,<键2>:<值2>,...<键n>:<值n>}

键和值通过冒号连接,不同键值对通过逗号隔开。

  • 字典(dict)是一组键/值对的数据结构。每个键对应于一个值。在字典中,键不能重复。根据键可以查询到值。
  • 字典的键只能使用不可变的对象,但字典的值可以使用不可变或可变的对象。

1、创建字典对象示例:

>>>{}
{}
>>>{'a':'apple','b':'boy'}
{'a':'apple','b':'boy'}
>>>dict()
{}
>>>dict({'a':'apple','b':'boy'})
{'a':'apple','b':'boy'}

  • 字典打印出来的顺序与创建之初的顺序不同,这不是错误。字典是集合类型的延续,各个元素并没有顺序之分。
    字典最主要的用法是查找与特定建相对应的值,这通过索引符号来实现。
>>>Dcountry["中国"]
'北京'

字典中键值对的访问模式:

<值> = <字典变量>[<键>]

2、字典类型的操作:

通过中括号可以增加新的元素:
直接使用大括号({})可以创建一个空的字典,并通过中括号([])向其增加元素。

3、字典操作函数与方法

操作函数 方法
radiansdict.clear() 删除字典内所有元素
radiansdict.copy() 返回一个字典的浅复制
radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
radiansdict.has_key(key) 如果键在字典dict里返回true,否则返回false
radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys() 以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
radiansdict.values() 以列表返回字典中的所有值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐