列表、字典、元组、集合的区别

 

 

1. 列表
列表、元组、字典、集合的区别是python面试中最常见的一个问题。这个问题虽然很基础,但确实能反映出面试者的基础水平。

        list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表。一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的,并且列表是可以嵌套的。python里的列表用“[]”表示:  

lst = ['arwen',123]
print lst[0] 
print lst[1]

lst[0] = 'weiwen'

  向list中添加项有两种方法:append和extend。

 

2. 元组

  元祖和列表十分相似,不过元组是不可变的。即你不能修改元组。元组通过圆括号中用逗号分隔的项目定义。元组通常用在使语句或用户定义的函数能够安全的采用一组值的时候,即被使用的元组的值不会改变。元组可以嵌套。
>>> zoo=('wolf','elephant','penguin')
>>> zoo.count('penguin')
1
>>> zoo.index('penguin')
2
>>> zoo.append('pig')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>> del zoo[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion

 

3. 字典
       字典类似于你通过联系人名称查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
       键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。另外,记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺 序,那么你应该在使用前自己对它们排序。
实例:
#coding=utf-8
dict1={'zhang':'张家辉','wang':'王宝强','li':'李冰冰','zhao':'赵薇'}
#字典的操作,添加,删除,打印
dict1['huang']='黄家驹'
del dict1['zhao']
for firstname,name in dict1.items():
    print firstname,name
结果:
li 李冰冰
wang 王宝强
huang 黄家驹
zhang 张家辉

     

定义dict.fromkeys(range(30),value) 可以形成一个双列的列表相当于java中的map,这个键值对列表存储子dict中

取键可以通过循环 for eachkey in dict.keys(): 把所有的键赋值到eachkey中去

取值可以通过循环 for eachkey in dict.values(): 把所有的值赋值到eachkey中去

取键值对站线程元组的形式 for eachItem in dict.item(): 把所有的键值对转化成元组的方式赋值给eachItem中

 

4. 集合(set)

(1) 特性:与字典类似,但只包含键,而没有对应的值,包含的数据不重复。

(2) 创建:s = set(list or tuple or string)。重复的值在集合中只存在一个。如:

    列表list:s = set([1,2,3,3]) ->s = set([1,2,3])

    元组tuple:s = set((1,2,3))  ->s = set([1,2,3])

    字符串string:s = set("abc") ->s = set(["a","b","c"])

posted @ 2020-08-09 16:24  nuoruo  阅读(1937)  评论(0编辑  收藏  举报