python基础知识(列表和字典)

一.列表

  • 列表里可以放任意类型变量
  • 列表大小不是固定的
  • 使用下标获取列表元素
  • 切片操作
  • 负数操作
  • 越界
  • 列表遍历使用for in

1.常用方法:

insert  pop remove  sort append 

expand(将两个列表的所有元素都当成单个元素放在列表)

队列,堆栈等数据结构都可以使用列表实现

l.append('sa')

l.append(10)

l.append(True)

l=(‘sa’,10,true)

列表可以放任何类型如字符串,数字,布尔类型,None等等

2.切片操作

l[2:4]取列表里从第二个到第4个元素

如果取列表最后一个元素,可以使用负数操作如  l[-1],也可以使用l[l(len)-1]

而l[1:-1] 取得则是列表中所有操作

二.字典

      字典是无序的,字典相当于key和value对应 ,字典的key不能重复

1)字典的定义:

d0=dict(a=1)    或者d1={"a":1}

2)字典的获取:

d['name'] = 'sa'

d.get('name')

使用get获取,可以给元素一个默认值,比如d.get('name','XXX'),这里xxx是默认值,如果元素有对应值,则会显示对应值,如果没有,则显示默认值

3)字典的赋值

如d['name'] = 'sasa'

则输入d 会输出 {'name':'sasa'}

使用d.setdefault('name','aaaa') 输出还是sasa  也就是说setdefault并不能赋值给已有value的key,但是可以赋值给没有value的key

4)字典的常用方法

d.keys()   

d,values() 

 d.items()  这个获取字典里的key和value的值是对应的 [('name','aaaa'),('name1','xxxx')]

    for k,v in d.items():

             print k,v

输出结果是: name xxxx

                       name1  aaaa

5)字典虽然是无序的,但是也可以做成有序的,可以使用OrderedDict,用途不多

三。列表和字典是按引用的。指向同一块内存地址

1.也就是说定义一个列表a  然后a1=a a2=a  a1.append('20'),这个时候a1和 a2都将会添加了20这个元素

如果a1指向另外一个列表,a1=['333'],此时再输出a和a2则还是原来的列表,这是因为a1已经指向新的一个列表一个空间了,而a和a2指向的是同一个空间

2.如果只是想a3拿到a的元素,并不想指向同一块内存地址

1)可以引入一个deepcopy的库(不是标准库,需要安装哈)

2)可以使用切片的方法 a3 = a[:]

这是a3的元素也跟a一样,但是不是同一个地址

id(a3)和id(a)可以查看地址是不同的

四。逻辑控制 条件语句

a=False

if not a:

     print"aaaa"

双重否定表肯定

python中没有&&和||  可以用and  or

if a==0 or (a==False  and a==1)如果一起使用,可以使用括号表示一下优先判断

for in 和while 循环

特别注意:continue和break的使用,continue是跳出本次循环,break为结束本次循环。

五 编码问题

gbk和utf-8

unicode相当于一个中转站吧。可以使用encode转成gbk或者utf-8

其实就是将 unicode 作为一个中转站,将各种编码转换(decode)成unicode 使用 s.decode(chaset) ,然后再将unicode编码的字符串转换(encode)成想要的编码 s.encode(chaset)

猜你喜欢

转载自www.cnblogs.com/sasalebao/p/12484746.html