父与子的编程之旅---12列表与字典13函数14对象15模块21打印格式化与字符串22文件

列表分片

a = ['a','b','c','d','e']
print(a[1:4])
--------------------------------
['b', 'c', 'd']

增加元素

ˆ 向列表末尾增加一个元素。
extend() ˆ ˆ 向列表末尾增加多个元素。
insert() ˆ ˆ 在列表中的某个位置增加一个元素,不一定非得在列表末尾。你
可以告诉它要在哪里增加元素。

letters.append('n')
print letters
['a', 'b', 'c', 'd', 'e', 'n']

letters.extend(['p', 'q', 'r'])
print letters
['a', 'b', 'c', 'd', 'e', 'n', 'g', 'p', 'q', 'r']

letters.insert(2, 'z')
print letters
['a', 'b', 'z', 'c', 'd', 'e', 'n', 'g', 'p', 'q', 'r']

删除元素

remove() 会从列表中删除你选择的元素,把它丢掉:

letters = ['a', 'b', 'c', 'd', 'e']
letters.remove('c')
print letters
['a', 'b', 'd', 'e']

del 允许利用索引从列表中删除元素,如下所示:

letters = ['a', 'b', 'c', 'd', 'e']
del letters[3]
print letters
['a', 'b', 'c', 'e']

pop() 从列表中取出最后一个元素交给你。这说明,你可以为它指派一个名字,
比如:

letters = ['a', 'b', 'c', 'd', 'e']
lastLetter = letters.pop()
print letters
['a', 'b', 'c', 'd']
print lastLetter
e

使用 pop() 时还可以提供一个索引,如:

letters = ['a', 'b', 'c', 'd', 'e'] #删除并弹出指定位置元素
second = letters.pop(1)
print second
b
print letters
['a', 'c', 'd', 'e']

搜索列表

要找出某个元素是否在列表中,可以使用 in 关键字,例如:

if 'a' in letters:
    print "found 'a' in letters"
else:
    print "didn't find 'a' in letters"

为了找出一个元素位于列表中的什么位置,可以使用 index() 方法,如下:

letters = ['a', 'b', 'c', 'd', 'e']
print letters.index('d')
3

列表排序

列表是一种有顺序(ordered)的集合 。这说明列表中的元素有某种顺序,每个
元素都有一个位置,也就是它的索引。一旦以某种顺序将元素放在列表中,它们就会
保持这种顺序,除非用 insert() 、 append() 、 remove() 或 pop() 改变列表。不过
这个顺序可能不是你真正想要的顺序。你可能希望列表在使用前已经排序。

#要对列表排序,可以使用 sort() 方法。
letters = ['d', 'a', 'e', 'c', 'b']
print letters
['d', 'a', 'e', 'c', 'b']
letters.sort()
print letters
['a', 'b', 'c', 'd', 'e']

sort() 会自动按字母顺序对字符串从小到大排序,如果是数字,就会按数字顺
序从小到大排序。
sort() 会在原地修改列表

按逆序排序

让一个列表按逆序排序有两种方法。一种方法是先按正常方式对列表排序,然
后对这个有序列表完成逆置(reverse),如下:

letters = ['d', 'a', 'e', 'c', 'b']
letters.sort()
print letters
['a', 'b', 'c', 'd', 'e']
letters.reverse()       #逆置
print letters
['e', 'd', 'c', 'b', 'a'

另一种方法是向 sort() 增加了一个参数,直接让它按降序排序(从大到小):

letters = ['d', 'a', 'e', 'c', 'b']
letters.sort (reverse = True)
print letters
['e', 'd', 'c', 'b', 'a']

还有一种方法可以得到一个列表的有序副本而不会影响原列表的顺序。Python 提
供了一个名为 sorted() 的函数可以完成这个功能。它的工作如下:

original = [5, 2, 3, 1, 4]
newer = sorted(original)
print original
[5, 2, 3, 1, 4]
print newer
[1, 2, 3, 4, 5]

元组 — 不可改变的列表

由于元组是不可改变的,所以不能对元组完成排序,也不能追加和删除元素。
一旦用一组元素创建一个元组,它就会一直保持不变

my _ tuple = ("red", "green", "blue")

双重列表:数据表 或者说 二维数组

A = [1,2,3]
B = [4,5,6]
C = [7,8,9]
S = [A,B,C]
print(S)
for i in S:
    print(i)
for i in S:
    for j in i:
        print(j)
print("*"*20)
print(S[1][2])
-------------------------------------------------
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
1
2
3
4
5
6
7
8
9
********************
6

字典

keys() 方法会列出字典中所有的键:

phoneNumbers.keys()
['Bob', 'John', 'Mary', 'Jenny']

values() 方法会列出字典中所有的值:

phoneNumbers.values()
['444-4321', '555-1234', '555-6789', '867-5309']

ˆ del 删除一个条目:

del phoneNumbers["John"]
print phoneNumbers
{'Bob': '444-4321', 'Mary': '555-6789', 'Jenny': '867-5309'

ˆ clear() 删除所有条目(清空字典):

phoneNumbers.clear()
print phoneNumbers
{}

ˆ in 确定某个键在字典中是否存在:

phoneNumbers = {'Bob':'444-4321', 'Mary':'555-6789','Jenny':'867-5309'}
"Bob" in phoneNumbers
True
"Barb" in phoneNumbers
False

time模块
让程序睡眠

import time
print("how ",end='')
time.sleep(2)
print("are ",end='')
time.sleep(2)
print("you ",end='')
time.sleep(2)
print("today ")

随机数

import random
print random.randint(0, 100)
4
print random.randint(0, 100)
72

如果你想得到一个随机的小数,可以使用 random.random() 。不用在括号里放
任何参数,因为 random.random() 总是会提供一个介于 0 到 1 之间的数

print random.random()
0.270985467261
print random.random()
0.569236541309

在字符串中搜索: in 和 index()

addr1 = '657 Maple Lane'
if 'Maple' in addr1:
print "That address has 'Maple' in it."

index() 会指出较小
串从较大字符串中的
哪个位置开始。

addr1 = '657 Maple Lane'
if 'Maple' in addr1:
position = addr1.index('Maple')
print "found 'Maple' at index", position

删除字符串的一部分

name = 'Warren Sande'
short_name = name.strip('de')
short_name
'Warren San'

猜你喜欢

转载自blog.csdn.net/q1694222672/article/details/81016495