集合python有相同元素报错_Python基础入门——元组、列表、集合、字典的使用方法...

元组与列表

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中元组采用逗号和圆括号(可选)来表示。

0e94988a27d594a68bfb0f5c537c99e7.png

tuple的定义与索引:

6bfcc26307ea75efdff01c9990225742.png

0323a533b6334230b2a811d2794f0c9d.png

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'}

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

2b428f04c883f2d7a42b368f63e2386f

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(),可以获得集合的长度、元素最大值、元素最小值、元素之和

4c4746de7ca36e8e12a744a23f43249f

集合类型主要用于三个场景:成员关系测试、元素去重和删除数据项。

4、映射类型

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

字典

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

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

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

字典的键只能使用不可变的对象,但字典的值可以使用不可变或可变的对象。

1、创建字典对象示例:

>>>{}

{}

>>>{'a':'apple','b':'boy'}

{'a':'apple','b':'boy'}

>>>dict()

{}

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

{'a':'apple','b':'boy'}

a579aff2c0a8f6bc227bbbc8e8b9bdf0.png

字典打印出来的顺序与创建之初的顺序不同,这不是错误。字典是集合类型的延续,各个元素并没有顺序之分。

字典最主要的用法是查找与特定建相对应的值,这通过索引符号来实现。

>>>Dcountry["中国"]

'北京'

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

= []

2、字典类型的操作:

通过中括号可以增加新的元素:

efc7b3a072252e1147fca93d0e2d7c95.png

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

db93764575cd0b5889941d38af7f0cc7.png

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

以列表返回字典中的所有值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值