list和tuple的使用技巧和难点,以及不可变对象!!

区别

list可以修改,而tuple一旦定义便不可修改

list

list[-1]直接取最后一个元素,同理list[-2]。。。可以取倒数第二。。。等的元素
list.append()追加元素到末尾
list.insert()插入元素到某位置
list.pop(i)弹出i位置的元素

tuple

一旦初始化便不可修改,但若其中有list元素,可对list进行修改

  • 空的tuple:t=()
  • 仅有1个元素“逗号是关键”:t=(1,)

dict

类似于C++中的map,使用KEY-VALUE存储,具有极快的查找速度(因为存在索引表)

  • 初始化:
>>>d={'a':96,'b':22,'c':15}
>>>d['a']
96
>>>d['b']=25           #通过key直接存入数据
>>>d['b']
25
  • 其他函数:
>>>‘e’ in d           #判断KEY是否存在
False
>>>d.get('e')       #判断KEY是否存在,不存在返回NONE(在python环境中不显示结果)
>>>d.get('e',-1)  #指定VALUE
>>>d.pop('a')     #删除指定KEY-VALUE
  • 特点:
  1. dict的key值为不可变对象:字符串、整数等都是不可变的,而List可变,不可作为key
  2. 空间换取时间

set

==与dict类似,为一组KEY的集合,不存储VALUE,且无重复的KEY

>>> s = set([1, 2, 2, 3])         #提供一个list作为输入集合
>>> s
{1, 2, 3}                         #重复元素被过滤
>>> s.add(4)                      #添加
>>> s
{1, 2, 3, 4}
>>> s.remove(4)                   #删除
>>> s
{1, 2, 3}
  • setdict唯一区别:没有存储对应的value,其他原理一样
set=[1,2,3]
s1=set([1,2,3])
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: 'list' object is not callable    #set被定义为{list}类型所导致的错误           

if

  • if语句的特点:从上往下判断,若某个判断上为true,则执行该语句内容,并忽略之后的elifelse
  • 加入用input输入做判断;例如:
s=input('birth')
if birth<2000:
...

会出现错误;
因为input()返回的数据类型为str,必须用强制类型转换!

for

  • for x in ...循环就是把每个元素带入变量x,然后执行缩进块的语句
  • for x in range(n)把0到n-1的n个数分别带入x
  • while为条件判断
while 条件:
    缩进块语句

break结束整个循环;continue结束当前循环;不要滥用这两个,会造成代码执行逻辑分叉过多

议不可变对象

  • str是不可变对象,如下代码
>>> a = 'abc'
>>> a.replace('a', 'A')          #replace作用在a的内容上,并从新创建了一个新字符串,返回该值
'Abc'
>>> a                            #并未改变a的内容
'abc'
  • list是可变对象,如下
>>> a = ['c', 'b', 'a']
>>> a.sort()
>>> a
['a', 'b', 'c']

所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值