随堂笔记12day python

列表 list (类)

  li = [1, 12, 9, ‘age’]  通过list类创建的对象

要点:

  中括号括起来

  以逗号分割每个元素

  列表中的元素可以是数字 字符串 列表(列表可以嵌套列表) 布尔值

  ‘集合’内部可以置放任何东西

索引取值

  切片的结果也是个列表

  可以for循环和whlie循环

列表可以被修改  

  链表 

  列表元素可以被修改

 

 

改变

  li = [1, 12, 9]

  li[1] = 120 

  print(li)

result

  [1, 120, 9]

 

 

删除

  del li[1]

 

 

in操作

  li = [1,133]

  v = 133 in li

  print(v)

列表中的元素以逗号分割做为整体

 

操作

li = [1,12,9,‘age’, ['海绵宝宝‘,[’19‘ 10’],],]

想要取到海绵宝宝

li[4][0]

print(li)

结果就是海绵宝宝

 

int不能for循环*************************?(是因为int是一个整体,不理解)

 

转换

  字符串转换列表,****************************(?)

  列表转换字符串,****************************(?)

int不能和str相加

 

list类

list类的一个对象

  li = [ 11, 22,33,44]

差数

  v = li。append(5)  追加

  print(v)                                       扩展原列表,可迭代对象            

在原来值最后追加        

  print(v)-------------------------------[11,22,33,44,5]                     结果为None(空,什么都不是,空值)

 

清空列表

li.clear()

 

拷贝(浅拷贝)

li.copy

 

计算某个元素出现的次数

li.count(XX)----------------------------------count必须要带个参数

 

 

def extend(self, iterable)

li = [11, 22, 33, 22, 44]

li.extend[98989, ‘不得了’]

print(li)

result--------------------[11, 22, 33, 22, 44, 98989, '不得了‘]

 

根据值获取当前值的索引位置

li = [11, 22, 33, 44]

li.index(33)------------------找到元素位置

result--------------------------- 2

 

插入

li = [ 11, 22, 33, 22, 44]

li.instert(0, 999)

  0-----------------------指定位置                   999-----------------------------插入元素

 

删除 

li = [ 11, 22, 33, 22, 44]

v = li.pop()------------------------------------默认将最后一个值删除,并获取删除的值。( )加索引值,可以删除指定位置的值。

print(v)

 

删除列表中的指定值,左边优先。

li = [ 11, 22, 33, 22, 44]

li.remore(22)

print(li)

 

 

将当前的列表进行反转

li = [1, 2, 3]

v = li.reverse

print(v)--------------------------------------------[3, 2,1]

 

sort 排序 -------------------从小到大

sort(reverse=True)------------从大到小

 

li对象调用append 方法

 

 

字符串不支持索引改值,字符串创建后不可修改

列表是有顺序的,列表的元素是可以被修改

列表list

 

列表指定改值

li = [ 11, 22, 44, 55]

li[0] = 999

 

元组 tuple 可以看作列表的2次加工,意思是不可修改,元组和list有很多相同的特性

  元组元素不可修改,不能被增加或被删除

  一般写元组的时候在最后加个逗号(以便区分)

元组可以切片,索引,长度,循环,包含

 

可以for循环的就是可以迭代对象,(可迭代对象包含字符串,列表,元组,*可以互相转换*)

1. v = tuple(s)

 print(v)  ---------字符串转元组

2. v = tuple(li)

 print(v) ------------------list转化成元组

 

join在元组(只能是字符串str,不能是数字int)可以使用

  v = '_'.join(tu)

  print(v)

 

extend(扩展)

  li = ['asdf', 'asdfsdfasdfa']

  li.extend((11,22,33))

  print(li)

 

元组是有序列的

  要获取33的值

  tu = (111,    'alex',    (  11,   22),     [ ( 33,    44)]

  v = tu[3][0][0]

 

元组的第一元素是不可以修改的,或者删除或者增加

但是嵌套在元组里的列表的元素是可以修改的

 

1. count 获取指定元素在元组中出现的次数

  tu.count(23)

 

2.index 获取指定元素在元组中的索引位置

  tu.index(233)

********************************************************遗留问题,列表是怎么插入新元素的,指定位置

 

 

 

创建是不允许被修改的数据类型用元组

要修改元组时可以先转换成列表在修改,再转换回去

 

 

 

字典   dict

  info = {

      'k' :‘v1’ --------------------------键值对

    }

字典的value可以是任何值,字典是由哈希值***********?

列表不能作为字典的key,因为列表可以被修改

元组可以作为字典的key,因为元组是不可以修改的

字典是不可以作为字典的key

 

 

特殊现象**************我忘记是什么意思

info = {True :‘123’}

print(info)

result*******************{123}

 

True = 1 

False = 0

 

布尔值可以作为字典的key,但是有可能会和数字(0或1)重复,那样会报错

 

字典是否有序的吗

每次打印结果顺序都是顺序不同的,所以字典是无序的

找指定元素和元组类似的:  

          元组是有序列的,要获取33的值

           tu = (111,    'alex',    (  11,   22),     [ ( 33,    44)]

                                   v = tu[3][0][0]

字典是无序的所以不能切片

字典元素可以删除(支持del删除)

 

字典可以for循环,不能while循环

1.  默认for循环中只有key

  for item in info key():

  print(item)

2. 获取value值

  for item in info value():

  print(item)

3. 同时拿到key 和 value

 a. for item in info .keys():

     print(item, info[item])

    b.   for k , v in info.item():              item键值对?

   print(k, v)

*************key如果重复了怎么办?

 

 

shallow copy 浅拷贝

根据序列,创建字典,并指定统一的值

dict.fromkeys( ['k1', 123, '999'], 123) *************?,这是赋到哪里的值

 

v = dic[ ]******************这个是什么,是寻找指定的值吗

如果不存在会报错

 

v = dic.get['k11' ,1111111111]

print(v)

根据key获取值,如果找不到,不会报错,

并可以指定返回指定的值(1111111111111,意思就是可以自己设置),默认是None

 

 

 

dic = {

    'k1':'v1'

    'k2':'v2'

  }

v = dic.pop('k11', 90)            没有删除到返回默认值(90,可以自己设置)

print(dic,v) 

 result**********{ 'k2':'v2'  ,  'k1':'v1'}90        ********如果删了k1,在90的地方会返回v1这个值

 

def popitem(随机删除,并获取值)

 

设置值:

  如果已经存在,不设置,并获取当前key对应的值

  如果不存在,就设置,获取当前key对应的值

  def.setdefault('k1111', ‘123’)

  print(dic,v)

 

更新

  dic.update( {‘k1’:‘1111111’,‘k3’:123} )

  print(dic)

存在就更新,不存在就添加

  dic.update('k1'=123, 'k2'=345, 'k4'=567)---------------------支持这种写法

 

 

布尔值本身就是0和1

真的类型太多了,所以只要记住假的就行

fales:

  None

    “”--------------空字符

  ()------------空元组

     {}--------------空字典

   []-------------空列表

 

总结必须要会的

  keys()

  values()

  items()

  get()

  update()

用多就会熟

**********************************************************************

所有总结(必须要会的)

1.数字:

  int()

2.字符串

  replace()

  find()

  join()

  strip()

  startswith()

  split()

  upper  /  lower

  format()

 

3.列表

  append()

  extend()

  insert()

  索引

  切片

  循环

 

4.元组

  略

  索引,切片,循环

  修改,增加,删除都不行

 

5.字典

  get()

  update()

  keys()

  values()

  items()

  for

  索引

补充in判断也是循环判断,判断某个key是不在字典里

over

 

  

 

 

  

 

posted @ 2018-02-27 08:48  牢妖  阅读(149)  评论(0编辑  收藏  举报