python学习笔记 第四章
列表与数组差不多,没什么难点,只不过切片这个东西确实挺方便的。#!/usr/bin/python# -*- coding: UTF-8 -*-list = ['Jeo', 654, 2.5, 'john', 7.2]print("len=" + str(len(list)))print("list[2:]=" + str(list[2:] ))print("list[:2]="
·
列表与数组差不多,没什么难点,只不过切片这个东西确实挺方便的。
0 1 2 3
Enter a pet name:
Pooka
Pooka is my pet.
index('hello') = 0
['hello', 'hi', 'howdy', 'heyas', 'moose']
['hello', 'hi', 'heyas', 'moose']
['moose', 'hi', 'heyas', 'hello']
list->tuple:
('cat', 'dog', 5)
tuple->list:
['cat', 'dog', 5]
[0, 'Hello!', 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5]
字符图网格
假定有一个列表的列表, 内层列表的每个值都是包含一个字符的字符串, 像这样:
grid = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
你可以认为 grid[x][y]是一幅“ 图” 在 x、 y 坐标处的字符, 该图由文本字符组
成。 原点(0, 0)在左上角, 向右 x 坐标增加, 向下 y 坐标增加。
复制前面的网格值, 编写代码用它打印出图像。
..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....
提示 你需要使用循环嵌套循环,打印出 grid[0][0],然后 grid[1][0],然后 grid[2][0],以此
类推,直到 grid[8][0]。这就完成第一行,所以接下来打印换行。然后程序将打印出
grid[0][1],然后 grid[1][1],然后 grid[2][1],以此类推。程序最后将打印出 grid[8][5]
#!/usr/bin/python
# -*- coding: UTF-8 -*-
list = ['Jeo', 654, 2.5, 'john', 7.2]
print("len=" + str(len(list)))
print("list[2:]=" + str(list[2:] ))
print("list[:2]=" + str(list[:2] ))
del list[2]
print("list=" + str(list ))
len=5
list[2:]=[2.5, 'john', 7.2]
list[:2]=['Jeo', 654]
list=['Jeo', 654, 'john', 7.2]
in 与 not in:
for i in [0, 1, 2, 3]:
print(i, end = "\t")
0 1 2 3
myPets = ['Zophie', 'Pooka', 'Fat-tail']
print('Enter a pet name:')
name = input()
if name not in myPets:
print('I do not have a pet named ' + name)
else:
print(name + ' is my pet.')
Enter a pet name:
Pooka
Pooka is my pet.
几个常用的方法:
spam = ['hello', 'hi', 'howdy', 'heyas']
print("index('hello') = " + str(spam.index('hello')))
spam.append('moose')
print(spam)
spam.remove('howdy')
print(spam)
spam.sort(reverse = True)
print(spam) #稳定的排序方法导致
index('hello') = 0
['hello', 'hi', 'howdy', 'heyas', 'moose']
['hello', 'hi', 'heyas', 'moose']
['moose', 'hi', 'heyas', 'hello']
list()和 tuple()函数来转换类型:
列表与元组合,元组就类似C语言的静态数组,是不能修改的
print("list->tuple:")
print(tuple(['cat', 'dog', 5]))
print("tuple->list:")
print(list(('cat', 'dog', 5)))
list->tuple:
('cat', 'dog', 5)
tuple->list:
['cat', 'dog', 5]
copy 模块的 copy()和 deepcopy()函数:
import copy
spam = [0, 1, 2, 3, 4, 5]
cheese = spam
cheese[1] = 'Hello!'
print(spam)
cheese2 = copy.copy(spam)
cheese2[1] = 1
print(spam)
print(cheese2)
[0, 'Hello!', 2, 3, 4, 5]
[0, 'Hello!', 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5]
实践项目:
逗号代码
假定有下面这样的列表:
spam = ['apples', 'bananas', 'tofu', 'cats']
编写一个函数,它以一个列表值作为参数,返回一个字符串。该字符串包含所
有表项,表项之间以逗号和空格分隔,并在最后一个表项之前插入 and。例如,将
前面的 spam 列表传递给函数,将返回'apples, bananas, tofu, and cats'。但你的函数应
该能够处理传递给它的任何列表。
def fun(list):
if len(list) > 1:
print(str(list[0]) + ",",end="")
del list[0]
fun(list);
else:
print("and" + str(list[0]),end="")
spam = ['apples','bananas', 'tofu', 'cats']
fun(spam)
字符图网格
假定有一个列表的列表, 内层列表的每个值都是包含一个字符的字符串, 像这样:
grid = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
你可以认为 grid[x][y]是一幅“ 图” 在 x、 y 坐标处的字符, 该图由文本字符组
成。 原点(0, 0)在左上角, 向右 x 坐标增加, 向下 y 坐标增加。
复制前面的网格值, 编写代码用它打印出图像。
..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....
提示 你需要使用循环嵌套循环,打印出 grid[0][0],然后 grid[1][0],然后 grid[2][0],以此
类推,直到 grid[8][0]。这就完成第一行,所以接下来打印换行。然后程序将打印出
grid[0][1],然后 grid[1][1],然后 grid[2][1],以此类推。程序最后将打印出 grid[8][5]
grid = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
for i in range(len(grid[0])):
for j in range(len(grid)):
print(grid[j][i], end=" ")
print()
. . O O . O O . .
. O O O O O O O .
. O O O O O O O .
. . O O O O O . .
. . . O O O . . .
. . . . O . . . .
更多推荐
所有评论(0)