Python(List , Tuple , Dict , Set学习)

List

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

用索引来访问list中每一个位置的元素,记得索引是从0开始的。

下面来看看list一些具体用法:

classmates.append('Adam')         #在list尾部插入一个元素

classmates.insert(1, 'Jack')      #在指定位置插入一个元素

classmates.pop()                  #在list末尾的元素被弹出 

classmates.pop(1)                 #弹出list中指定位置的元素

classmates[1] = 'Sarah'           #将原本位置的元素直接替换  

L = ['Apple', 123, True]          #list中的数据类型可以是不同的

s = ['python', 'java', ['asp', 'php'], 'scheme'] #list中的元素也可以是list

p = ['asp', 'php']
s = ['python', 'java', p, 'scheme']    #此时的list可以看作一个二维数组,多维数组以此类推

Tuple

一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

不可变的tuple有什么意义?

答:因为tuple不可变,所以代码更安全

如果要定义一个空的tuple,可以写成()

t = ();

要定义一个只有1个元素的tuple的话【注意】

t = (1);        #错误,这样是被当作数字1,因为()在python里面默认是数学中的()

t = (1,);       #含一个元素的元组,添加一个“ ,” 来消除歧义。

Dict 

Python内置了字典:,使用键-值(key-value)存储,具有极快的查找速度。【索引/查字典】

Dict形式: key,value; 

names = ['Michael', 'Bob', 'Tracy']
scores = [95, 75, 85]
#如上述写法添加时,需要两个list

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
# dict只需要一个

如果key不存在,dict就会报错:

d['Thomas']


# 以下是编译器报的错误
# Traceback (most recent call last):
#   File "C:\Users\99587\PycharmProjects\pythonProject4\main.py", line 1, in <module>
#     d['Thomas']
# NameError: name 'd' is not defined. Did you mean: 'id'?

Dict中内部存放顺序和放入的顺序无关。

List 和 Dict 对比

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

需要牢记的第一条就是dict的key必须是不可变对象 

Set 

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合:

s = set([1, 2, 3])

# 输入的是列表,输出的是{1, 2, 3}【集合】

【注意】

set中的顺序不表示它是有序的,且重复的key会被自动滤掉

s.add(4)        #添加元素

s.remove(4)     #删除元素

# set可以看成数学意义上的无序和无重复元素的集合
# 因此,两个set可以做数学意义上的交集、并集等操作

 s1 = set([1, 2, 3])
 s2 = set([2, 3, 4])

 s1 & s2
 {2, 3}

 s1 | s2
 {1, 2, 3, 4}

Dict 和 Set 对比

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值