【笔记】Python——list、tuple和dict

  • 如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释

    \# -*- coding: utf-8 -*-
    
  • Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True

例如:

a = True
print a and 'a=T' or 'a=F'

计算结果是字符串而不是布尔类型

解释:

True and 'a=T' 计算结果是 'a=T'
继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'

短路计算法则:

  1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
  2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

list:数学意义上的有序集合

添加新元素

append(): 直接追加到末尾

L.append('new')

insert(): 添加到指定位置

#例如添加到第三个位置
L.insert(2,'new')

删除元素

pop(): 总是删除List最后一个元素

L.pop()

pop(n): 删除指定位置元素

L.pop(2)

tuple :有序列表,中文为 "元组"

  • tuple一旦创建,就无法修改,获取元素的方式和list一样,可使用t[0],t[-1]访问元素,但无法修改,增加和删除
  • continue :跳过后续循环代码,继续下一次循环

dict

迭代dict中的value

  • values()方法:将dict转换成包含value的list,占用更多内存

用法:

for x in dict.values()
  • itervalues()方法:无需转换,占用更少内存

用法:

for x in dict.itervalues()

同时迭代dict中的key和value

  • items()方法:将dict转换成包含tuple的list

用法:

for key,value in dict.items():

生成列表

例如利用列表生成式生成列表[1x2,3x4,……,99x100]

[x * (x+1) for x in range(1,100,2)]
  • isinstance(x, str) 可以判断变量 x 是否是字符串;
  • upper()返回字符串的大写字母、

汉诺塔(越高盘子越小,越底下盘子越大)

def move(n, a, b, c):
if n == 1:
    print a, '-->', c
    return
move(n-1,a,c,b)        #首先将a上的n-1个(除最底下一个)移动到b(即:a上的n-1个通过c移动到b)
print a, '-->', c      #移动完成后,a上只剩下最底下一个(最大的一个),然后将这个最大的移到c
move(n-1,b,a,c)        #此时b上有n-1个,现在任务是将b上的所有n-1个移到c(即:b上的所有n-1个通过a移到c)
move(4, 'A', 'B', 'C')

2019.10.01 23:09

添加新评论

๑òωó๑