内建函数与列表常用函数
Posted yuanjian6
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内建函数与列表常用函数相关的知识,希望对你有一定的参考价值。
汉诺塔问题?
-
规则:
1.每次移动一个盘子
2.任何时候大盘子在下面,小盘子在上面
-
方法:
1.n = 1 直接把 A 上的盘子移到 C 上去,A->C 2.n = 2 :
小盘子放到B 上A->B 把大盘子放到C上 A->C 把小盘子放到C上 B->C
3.n = 3:
把A上的两个盘子,通过C移到B上去,调用递归实现 把A上的最大的盘子移到C上 A->C 把B上的两个盘子借助A,移到C上去,调用递归实现
4.n = n:
把A 上的n-1个盘子,借助c移到B上去,调用递归 把A 上的 最大的盘子移到C上,A->C 把B上的n-1个盘子,借助A,移到C上去,调用递归
In [4]:
def hano(n,a,b,c):
"""
汉诺塔的递归实现
n:代表几个盒子
a:代表第一个塔
b:代表第二个塔
c:代表第三个塔
......
"""
if n == 1:
print(a,"-->",c)
return None
if n == 2:
print(a,"-->",b)
print(a,"-->",c)
print(b,"-->",c)
return None
# 把 n-1 个盘子,借助于 c 塔,移动到 b 塔上去
hano(n-1,a,c,b)
print(a,"-->",c)
# 吧 n-1 个盘子借助于 A 塔,移到c 塔上去
hano(n-1,b,a,c)
a = "A"
b = "B"
c = "C"
?
n = 1
hano(n,a,b,c)
In [5]:
n = 2
hano(n,a,b,c)
In [7]:
n = 3
hano(n,a,b,c)
# list (列表)
?
- del:删除命令
list (列表)?
- del:删除命令
In [10]:
# del 删除
a = [1,2,3,4,5]
del a[2]
print(a)
In [11]:
# del 删除
# 如果使用del 之后,id 的值和使用前不一样,则生成了一个新的 list
a = [1,2,3,4,5]
print(id(a))
del a[2]
print(id(a))
print(a)
In [12]:
# del 一个变量后就不能在使用此变量
del a
print(a)
## 列表相加(相乘)
?
- 使用加号“ + ”连接两个列表
列表相加(相乘)?
- 使用加号“ + ”连接两个列表
In [13]:
a = [1,2,3,4,5]
b = [11,12,13,14]
d = a + b
print(d)
In [18]:
a = [1,2,3,4,5]
b = a * 10
print(b)
In [20]:
## 成员资格运算
?
# 就是判断一个元素是否在 list 里边
?
a = [1,5,9,6,7]
b = 5
# C的值一定是个布尔值
c = b in a
print(c)
?
b = 4
print(b in a)
In [21]:
# not in
a = [1,5,9,6,7]
b = 10
print(b not in a)
# 链表的遍历
- for
- while
链表的遍历?
- for
- while
In [22]:
# for in list
a = [1,5,9,6,7]
?
# 挨个打印出a 里边的元素
for i in a:
print(i)
In [23]:
a = ["I love you"]
for i in a:
print(i)
In [24]:
## range
# 在 in 后面的所有变量要求是可以可迭代的内容
for i in range(1,11):
print(i)
In [ ]:
# while循环访问list, 一般不用 while访问
In [26]:
a = [1,2,3,4,5]
length = len(a)
# indx 表示的是 list 的下标
indx = 0
while indx < length:
print(a[indx])
indx += 1
In [28]:
## 双层列表循环
a = [["one",20],["love",50],["pou",60] ]
for k,v in a:
print(k,"__",v)
In [29]:
## 双层列表循环变异
a = [["one",20,"onr"],["love",50],["pou",60] ]
for k,v in a:
print(k,"__",v)
In [32]:
## 双层列表循环变异
a = [["one",20,"hah"],["love",50,"yyj"],["pou",60,"bbq"] ]
# 这个例子说明,k v w 的个数应该跟解包出来的个数一致
for k,v,w in a:
print(k,"__",v,"__",w)
# 列表内涵: list content
?
- 通过简单的方式创作列表
列表内涵: list content?
- 通过简单的方式创作列表
In [33]:
# for 创建
a = ["a","b","c","d"]
# 用 list a 创建一个 list b
# 下面代码的含义是,对于所有 a 中元素,这个放入新的列表中
b = [i for i in a]
print(b)
In [34]:
# 对于 a 中所有元素乘以 10 ,生成一个新的 list
a = ["a","b","c","d"]
# 用 list a 创建一个 list b
# 下面代码的含义是,对于所有 a 中元素,这个放入新的列表中
b = [i*10 for i in a]
print(b)
In [38]:
# 还可以过滤原来 list 中内容放入新的列表
# 比如原有列表 a ,需要把所有 a 中的偶数生成新的列表 b
?
a = [x for x in range(1,35)] # 生成从 1 到 34 的整数列表
# 吧 a 中所有偶数生成一个新的列表 b
b = [m for m in a if m % 2 == 0 ]
print(b)
In [44]:
# 列表生成可以嵌套
# 由两个列表 a ,b
?
a = [i for i in range(1,10)]# 生成列表 a
print(a)
?
b = [i for i in range(100,400) if i % 100 == 0]
print(b)
?
# 列表生成是可以嵌套,此对等于两个 for 循环嵌套
c = [m+n for m in a for n in b]
print(c)
?
# 上面代码跟下面的代码等价
for n in a:
for m in b:
print(m+n, end=" ")
print()
?
?
?
# 嵌套的列表生成式也可以用条件表达式
c = [ m+n for m in a for n in b if m+n < 200]
print(c)
## 关于列表的函数
?
关于列表的函数?
In [52]:
# len 求列表长度
a = [x for x in range(1,20)]
print(len(a))
?
# max :求函数中的最大值
# min: 同理(最小值)
print(max(a))
print(min(a))
?
b = ["one","whuin","lone"]
print(max(b))
print(min(b))
In [48]:
# list :把其他的数据转换成 list
a = [1,2,3]
print(list(a))
In [49]:
s = "I am is yj do you know"
print(list(s))
In [ ]:
print()
以上是关于内建函数与列表常用函数的主要内容,如果未能解决你的问题,请参考以下文章