list和tuple

在python中分为可变表和不可变表:

类型 名称 表示方法
可变 list []
不可变 tuple ()

list

  • list是可变表,list内部索引从0开始,正整数是正序的索引,负整数是 反向索引,例如list[-1]和list[-2]分别表示最后一个和倒数第二个元素
  • list索引越界会报错“list index out of range”
  • list支持二维和多维,元素可以是list或tuple
  • list的方法
序号 方法 作用
1 append() 末尾追加
2 insert(index, context) 指定位置插入
3 pop(index) 删除指定位置元素,如果index为空表示删除末尾元素
4 list[i] = context 替换指定位置的元素内容
l1 = [1, 2, 'a']
print(l1)
l1.append('b')
print(l1)
l1.pop()
print(l1)
l1.insert(1, 'c')

tuple

tuple是有序表,也就是内容是不可变的,编程中尽量以tuple代替list

  • 定义一个空的tuple是直接复制空:
t = ();
  • 定义只有一个元素的tuple不能将1写入括号中,要用逗号区分:
t = (1,);

注意如果tuple中间包含的是list,那么改变list的内容是合法的


dict

*dict也就是dictionary,是python中的map,底层也是hash算法来实现。采用空间换时间

d = {'name1':'zhangsang', 1:100}
print(d['name1'])
print(d[1]) if 'name1' in d:
print(d['name1']) print('Reset name1:lisi')
d['name1'] = 'lisi'
print(d['name1']) print('get name1 from d:')
d.get('name1') print('pop name1')
d.pop('name1')
print(d)
#d.get('name1', -1)
#print(d['name1'])

从代码中可以看出来:

  • dict以key和value配对出现
  • dict的key是否存在可以用in来判断,或者使用get方法。并且get方法如果没有默认返回None或是自己指定的值
  • dict使用pop来移除元素
  • dict的key的选取要使用不可变元素:整数和字符串等

set

set也是不可变的,其中只存放key

s = set([1, 2, 3])
print('s is a set:', s) print('add 1 twice:')
s.add(1)
s.add(1)
print('new s is a set:', s) s1 = set(['a', 'b'])
print(s1)
print('s | s1')
print(s | s1) print('remove "'"a"'" from s1')
s1.remove('a')
print(s1)

从代码中看:

  • 赋值的方法要注意有set关键字
  • list是set的输入集合
  • set不支持重复元素
  • set可以使用交集和并集来处理元素

python的可变list和不可变tuple, dict和set的更多相关文章

  1. 六、python沉淀之路--int str list tuple dict 重点总结

    一.数字int(..)二.字符串replace/find/join/strip/startswith/split/upper/lower/formattempalte = "i am {na ...

  2. Python(可变/不可变类型,list,tuple,dict,set)

    补充:(可用操作技巧) >>> x=900 >>> y=900 >>> x==y True >>> type(x) is typ ...

  3. Python基础(list和tuple)可变集合和‘不可变’集合

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  4. 【Python】可变对象和不可变对象

    Python在heap中分配的对象分成两类:可变对象和不可变对象.所谓可变对象是指,对象的内容是可变的,例如list.而不可变的对象则相反,表示其内容不可变. 不可变对象:int,string,flo ...

  5. Python 可变对象和不可变对象

    具体可以看这里:http://thomaschen2011.iteye.com/blog/1441254 不可变对象:int,string,float,tuple 可变对象   :list,dicti ...

  6. Python中的可变对象和不可变对象

    Python中的可变对象和不可变对象 什么是可变/不可变对象 不可变对象,该对象所指向的内存中的值不能被改变.当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一 ...

  7. python,可变对象,不可变对象,深拷贝,浅拷贝。

    学习整理,若有问题,欢迎指正. python 可变对象,不可变对象 可变对象 该对象所指定的内存地址上面的值可以被改变,变量被改变后,其所指向的内存地址上面的值,直接被改变,没有发生复制行为,也没有发 ...

  8. python 中的可变对象与不可变对象

    近日辞职待工,没有实际的项目与大家分享.暂写写在实际运用python中遇到的关于可变对象和不可变对象的坑. 首先我们需要明确一个概念,在python中一且皆对象.我们一般定义一个变量a=0,其实质a是 ...

  9. Python入门之python可变对象与不可变对象

    本文分为如下几个部分 概念 地址问题 作为函数参数 可变参数在类中使用 函数默认参数 类的实现上的差异 概念 可变对象与不可变对象的区别在于对象本身是否可变. python内置的一些类型中 可变对象: ...

随机推荐

  1. 查看端口 (windows)

    查看端口 netstat -an |findstr

  2. win xp 安装 VS2010 时要重启是因为没安装WINDOWS INSTALLER 4.5

    win xp 安装 VS2010 时要重启是因为没安装WINDOWS INSTALLER 4.5. 无意间看到VS2010安装列表中有一项是 WINDOWS INSTALLER 4.5 . 装这个玩意 ...

  3. Linux 后台进程管理

    fg.bg.jobs.&.ctrl + z命令一. &加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &,二.ctrl + z可以将一个正在前台执行的命令放到后台 ...

  4. MySQL主从同步和半同步配置

    mysql主从配置: 1,安装maraidb,使用国内yum镜像站下载:[root@localhost mysql]# cat /etc/yum.repos.d/MairaDB.repo # Mari ...

  5. R语言学习——欧拉计划(3)Largest prime factor 求最大质因数

    The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 60085 ...

  6. Linux-Zabbix

    ###############################安装######################################## 安装部分我写了文档,可能不是很完善 文档如下→→ [ ...

  7. 1108 Finding Average (20 分)

    1108 Finding Average (20 分) The basic task is simple: given N real numbers, you are supposed to calc ...

  8. 让MySql支持Emoji表情(MySQL中4字节utf8字符保存方法)

    手机端插入Emoji表情,保存到数据库时报错: Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x84' ...

  9. Hive基础之Hive体系架构&运行模式&Hive与关系型数据的区别

    Hive架构 1)用户接口: CLI(hive shell):命令行工具:启动方式:hive 或者 hive --service cli ThriftServer:通过Thrift对外提供服务,默认端 ...

  10. java管道通信

    介绍:不同的数据源之间通过建立管道进行数据通信.如图: 线程之间通信最好的方式就是采用管道机制,类似水管一样,水管可以对接,组合成各种具有过滤性质的管道,管道和线程灵活使用,可以提高效率.(Chann ...