我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 元组和集合的特点及常用操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python 元组和集合的特点及常用操作

一、元组的特点:

1、有序的集合

2、通过偏移来取数据

3、属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。


tuple支持的方法很少

>>> dir(tuple)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']


>>> a = (1,2,3)
>>> a[0]
1
>>> a[1:3]
(2, 3)


通过tuple的类型转换,来修改变量的引用

>>> a = (1,2,3)
>>> b= list(a)
>>> b[0]=5
>>> type(b)
<type 'list'>
>>> b
[5, 2, 3]
>>> a=tuple(b) ###新生成了一个对象,表面上是修改成功了
>>> a
(5, 2, 3)




思考:元组不能改变,那为什么有列表,还要有元组呢?元组一般当成参数传递给方法,而不是传递列表,元组不可变的好处,保证数据的安全,比如我们传给一个不熟悉的方法或者数据接口,确保方法或者接口不会改变我们的数据从而导致程序问题。


#!/usr/bin/python
#coding:utf-8
def info(a):
    ""我们不熟悉的方法""
print 'sss %d' % id(a)
a[0]="haha"
return a
a = [1,2,3]
print "start-"
print id(a)
info(a) #一个列表传给了一个方法,却改变了这个列表的值,这里如果是a=(1,2,3)则相对的安全
print a


#!/usr/bin/python
#coding:utf-8
def info(a):
    b =a[:] #拷贝会生成一个新的列表对象
print 'sss %d' % id(a)
b[0]="haha"
return a #不会修改列表的值
a = [1,2,3]
print "start-"
print id(a)
info(a)
print a


二、集合:集合是没有顺序的概念。所以不能用切片和索引操作。内置方法set(),接收可迭代的对象,如果对象有__iter__ 属性,就是可以迭代的对象,如字符串、列表、元组

1、创建集合。set():可变的 ;不可变的frozenset():

2、添加操作: add,update,注意update和add的区别

3、删除 remove

4、成员关系 in,not in

6、交集,并集,差集 & | -

7、set去重  列表内容元素重复


>>> b=set('abc')
>>> b
set(['a', 'c', 'b'])
>>> b.add('python') #作为一个整体,添加单个对象到集合里
>>> b
set(['a', 'python', 'c', 'b'])
>>> b.update('hello') #打散了,把对象里的每个元素添加到集合里
>>> b
set(['a', 'c', 'b', 'e', 'python', 'h', 'l', 'o'])



>>> b.remove('python')
>>> b.remove('python') #删除不存在的原始,会有异常
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
KeyError: 'python'
>>> b
set(['a', 'c', 'b', 'e', 'h', 'l', 'o'])


>>> 'c' in b
True
>>> 'x' in b
False
>>> 'x' not in b
True
>>> a = set('abcd')
>>> b= set('bcdef')
>>> a & b  #求集合的交集
set(['c', 'b', 'd'])
>>> a | b  #求并集
set(['a', 'c', 'b', 'e', 'd', 'f'])
>>> a - b  #求差集
set(['a'])





##不可变集合,frozenset,不能进行添加,修改和删除的操作

>>> a = frozenset('bac')  #frozenset是有序的
>>> a.add('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'frozenset' object has no attribute 'add'
>>> a.remove('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'frozenset' object has no attribute 'remove'
>>> a
frozenset(['a', 'c', 'b'])








##判断2个集合是否相等,和元素本身有关,和顺序无关。

>>> print set('abc') == set('cba')
True


list 去重的两种方法

l

iststr = ['haha','gag','hehe','haha']
#for循环
m = []
for i in liststr:
    if i not in m:
        m.append(i)
       
print m
['haha', 'gag', 'hehe']


>>> m = set(liststr)
>>> m
set(['gag', 'hehe', 'haha'])
>>> print list(m)
['gag', 'hehe', 'haha']





练习:


a = (1,2,3)


一、用2种方法输出实现下面的结果:


(5,2,3)

>>> a = (1,2,3)
>>> b=list(a)
>>> b[0]=5
>>> a=tuple(b)
>>> a
(5, 2, 3)





2 判断2是否在元组里

>>> 2 in a
True


二、集合a = set(['a','b','c'])做下面的操作:


1、添加字符串'jay'到集合a里。


>>> a = set(['a','b','c'])
>>> a.add('jay')
>>> a
set(['a', 'c', 'b', 'jay'])


2、集合b = set(['b','e','f','g']) 用2种方法求集合a 和集合b的并集。


>>> b = set(['b','e','f','g'])
>>> a
set(['a', 'c', 'b', 'jay'])
>>> a|b
set(['a', 'c', 'b', 'e', 'g', 'jay', 'f'])


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 元组和集合的特点及常用操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 元组和集合的特点及常用操作

一、元组的特点:1、有序的集合2、通过偏移来取数据3、属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。tuple支持的方法很少>>> dir(tuple)['__add__', '__class__', '__contains_
2023-01-31

Python 列表、元组、字典及集合操作

一、列表列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型列表是一种有序的集合,可以随时添加和删除其中的元素列表的索引从0开始1、创建列表>>> list1 = ['python', 20
2023-01-30

python 列表特点及常用操作

一、列表的特性1、有序的集合2、通过偏移来索引,从而读取数据3、支持嵌套4、可变的类型列表支持的方法>>> dir(list)['__add__', '__class__', '__contains__', '__delattr__', '
2023-01-31

Python 字典的特点和常用操作

一、字典帮助文档>>> dir(dict)['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__form
2023-01-31

python中字典和集合的常用操作

本篇内容主要讲解“python中字典和集合的常用操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python中字典和集合的常用操作”吧!#字典:存多个值,key-value存取,取值速度快,k
2023-06-02

怎么使用Python的元组和集合

本篇内容主要讲解“怎么使用Python的元组和集合”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python的元组和集合”吧!元组元组是不可变的有序项序列。“不可变”—&md
2023-06-16

Python集合常用的操作有哪些

本篇文章为大家展示了Python集合常用的操作有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、什么是集合?集合(set)和字典(dict)类似,它是一组 key 的集合,但不存储 value
2023-06-15

JAVA集合框架中的常用集合及其特点和实现原理简介

本篇内容介绍了“JAVA集合框架中的常用集合及其特点和实现原理简介”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java提供的众多集合类由两
2023-06-19

Linux下的ctrl常用组合键及操作方法

在linux的命令模式下使用ctrl组合键能让操作更便捷。 ctrl + k : 剪切光标及其后边的内容; ctrl + u : 剪切光标之前的内容; ctrl + y : 在光标处粘贴上两个命令,粘贴方式和被剪
2022-06-04

Python列表和数组的常用操作是怎样的

这篇文章将为大家详细讲解有关Python列表和数组的常用操作是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python中的列表(list)类似于C#中的可变数组(ArrayList)
2023-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录