[转] Python list、tuple、dict区别

from: http://www.cnblogs.com/Michael-Kong/archive/2012/07/11/2585840.html

  1. Dictionary 是 Python 的内置数据类型之一, 它定义了键和值之间一对一的关系。
  2. 每一个元素都是一个 key-value 对, 整个元素集合用大括号括起来
  3. 您可以通过 key 来引用其值, 但是不能通过值获取 key
  4. 在一个 dictionary 中不能有重复的 key。给一个存在的 key 赋值会覆盖原有的值。  在任何时候都可以加入新的 key-value 对。这种语法同修改存在的值是一样的。
  5. 当使用 dictionary 时, 您需要知道: dictionary 的 key 是大小写敏感的
  6. Dictionary 不只是用于存储字符串。Dictionary 的值可以是任意数据类型, 包括字符串, 整数, 对象, 甚至其它的 dictionary。在单个 dictionary 里, dictionary 的值并不需要全都是同一数据类型, 可以根据需要混用和匹配。  Dictionary 的 key 要严格多了, 但是它们可以是字符串, 整数和几种其它的类型 (后面还会谈到这一点) 。也可以在一个 dictionary 中混用和配匹 key 的数据类型
  7. del 允许您使用 key 从一个 dictionary 中删除独立的元素。
  8. clear 从一个 dictionary 中清除所有元素。注意空的大括号集合表示一个没有元素的 dictionary。

  1. list是一个使用方括号括起来的有序元素集合。
  2. List 可以作为以 0 下标开始的数组。任何一个非空 list 的第一个元素总是 li[0]
  3. 负数索引从 list 的尾部开始向前计数来存取元素。任何一个非空的 list 最后一个元素总是 li[-1]。 如果负数索引使您感到糊涂, 可以这样理解: li[-n] == li[len(li) - n]。 所以在这个 list 里, li[-3] == li[5 - 3] == li[2]
  4. 您可以通过指定 2 个索引得到 list 的子集, 叫做一个 “slice” 。返回值是一个新的 list, 它包含了 list 中按顺序从第一个 slice 索引 (这里为 li[1]) 开始, 直到但是不包括第二个 slice 索引 (这里为li[3]) 的所有元素。
  5. 如果将两个分片索引全部省略, 这将包括 list 的所有元素。但是与原始的名为 li 的 list 不同, 它是一个新 list, 恰好拥有与 li 一样的全部元素。li[:] 是生成一个 list 完全拷贝的一个简写。
  6.  append 向 list 的末尾追加单个元素。
  7. insert 将单个元素插入到 list 中。数值参数是插入点的索引。请注意, list 中的元素不必唯一, 有有两个独立的元素具有 ‘new‘ 这个相同的值
  8. extend 用来连接 list。请注意不要使用多个参数来调用 extend, 要使用一个 list 参数进行调用。
  9. Lists 的两个方法 extend 和 append 看起来类似, 但实际上完全不同。 extend 接受一个参数, 这个参数总是一个 list, 并且添加这个 list 中的每个元素到原 list 中
  10. 另一方面, append 接受一个参数, 这个参数可以是任何数据类型, 并且简单地追加到 list 的尾部。 在这里使用一个含有 3 个元素的 list 参数调用 append 方法。
  11. index 在 list 中查找一个值的首次出现并返回索引值。
  12. 要测试一个值是否在 list 内, 使用 in, 如果值存在, 它返回 True, 否则返为 False 。
  13. remove 从 list 中删除一个值的首次出现。
  14. pop 是一个有趣的东西。它会做两件事: 删除 list 的最后一个元素, 然后返回删除元素的值。请注意, 这与 li[-1] 不同, 后者返回一个值但不改变 list 本身。也不同于 li.remove(value), 后者改变 list 但并不返回值。
  15. Lists 也可以用 + 运算符连接起来。 list = list + otherlist 相当于 list.extend(otherlist)。 但 +运算符把一个新 (连接后) 的 list 作为值返回, 而 extend 只修改存在的 list。 也就是说, 对于大型 list 来说, extend 的执行速度要快一些。
  16. Python 支持 += 运算符。 li += [‘two‘] 等同于 li.extend([‘two‘])。 += 运算符可用于 list, 字符串和整数, 并且它也可以被重载用于用户自定义的类中。
  17. * 运算符可以作为一个重复器作用于 list。 li = [1, 2] * 3 等同于 li = [1, 2] + [1, 2] + [1, 2], 即将三个 list 连接成一个。

  1. Tuple是不可变的list.一是创建了一个tuple就不能以任何方式改变它.
  2. 定义tuple与定义list的方式相同,除了整个元素集是用小括号包围的而不是方括号.
  3.   Tuple的元素与list一样按定义的次序进行排序.Tuples的索引与list一样从0开始,所以一个非空的tuple的第一个元素总是t[0].
  4. 负数索引与 list 一样从 tuple 的尾部开始计数。
  5. 与 list 一样分片 (slice) 也可以使用。注意当分割一个 list 时, 会得到一个新的 list ;当分割一个 tuple 时, 会得到一个新的 tuple。
  6. Tuple 没有方法:没有 append 或 extend 方法、没有 remove 或 pop 方法、没有 index 方法、可以使用 in 来查看一个元素是否存在于 tuple 中。


  其中list()函数与tuple()函数接受可抚今迭代的对象(比如一个序列)作为 参数,并通过浅拷贝数据来创建一个新的列表与元组.虽然字符串也是序列类型,但一般它们不用于list()与tuple().更多的情况下,它们用于在两 种类型之间进行轩换,比如你需要把一个已有的元组转换成列表类型(然后你可以修改它的元素),反之也是.

alist=[‘123‘,‘456‘];

atuple=tuple(alist);

print atuple

>>>(‘123‘, ‘456‘)

alist==atuple

>>> False

alist2=list(atuple)

alist2==alist

>>>True

alist is alist2

>>>False

再说id()确认一下, [id(x)  for x in alist,atuple,alist2]

>>>[10903800,12003900,11730280]

所以无论是list()还是tuple()都不可能做到完全转换,也就是说传递一个元组到list不会变成真正的列表,同时传递一个列表到tuple() 也不会变成一个真正的元组.虽然前后两个对象有相同的数据集合,但是变量指向的不是同一个对象.需要注意的是:它们的所有值相同,一个列表也不可能"等 于"一个元组的.

时间: 2024-11-07 03:02:12

[转] Python list、tuple、dict区别的相关文章

Python List+Tuple+Dict+Set小结

创建List:L = ['Adam', 'Lisa', 'Bart', 'Gechong', 'Kongming'] 显示List:L[0] 遍历List:print (L)和for循环 更新List:append()和insert()和直接赋值 删除List:pop()和pop(n) List特点: 可以添加删除 ? 1 2 3 4 5 6 Li = ['Adam', 'Lisa', 'Bart', 'Gechong', 'Kongming'] print (Li) for name in L

python list tuple dict

很意外,我的博客居然有人访问,还有一位仁兄来评价,点赞,莫名感激 一 list           name = ["aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","iii"] print(name) ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff

Python中list,tuple,dict,set的区别和用法

Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List 字面意思就是一个集合,在Python中List中的元素用中括号[]来表示,可以这样定义一个List: L = [12, 'China', 19.998] 可以看到并不要求元素的类型都是一样的.当然也可以定义一个空的List: L = [] Python中的List是有序的,所以要访问List的话显然

Python中内置数据类型list,tuple,dict,set的区别和用法

Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. (原链接:http://www.jb51.net/article/76339.htm) List 字面意思就是一个集合,在Python中List中的元素用中括号[]来表示,可以这样定义一个List: ? 1 L = [12, 'China', 19.998] 可以看到并不要求元素的类型都是一样的.当然也可以定

Python容器--list, tuple, dict, set

## Python 中有四种用于存放数据的序列--list, tuple, dict, set ## list 列表 - 可以存放任意类型数据的有序序列 - 列表可以由零个或多个元素组成,元素之间用逗号分开,整个列表被方括号所包裹: - 创建 - 使用[]或者list()创建列表 - new_list = ["Stanley", "Loves", "Lily"] - 访问及修改 - 使用列表名[索引]来访问和修改列表元素,索引初始值为0,最大值不

Python中的list,tuple,dict和set

List list的创建与检索 Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 构造list非常简单,直接用 [ ] 把list的所有元素都括起来,就是一个list对象. Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据: 例如: >>> L = ['Michael', 100, True] list索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索

Python学习——使用dict和set

dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list: names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85] 给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长. 如

list,tuple,dict,set常用方法

Python中list,tuple,dict,set常用方法

9 Python基础-使用dict和set

dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list: names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85] 给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长. 如

python入门七(迭代)【9-3 python之迭代dict的value和key】

9-3 python之迭代dict的value和key 我们了解了如何迭代 dict 的key和value,那么,在一个 for 循环中,能否同时迭代 key和value?答案是肯定的. 首先,我们看看 dict 对象的 items() 方法返回的值: >>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } >>> print d.items() [('Lisa', 85), ('Adam', 95), ('Bart', 59)]