Python 序列和字典

序列(Sequences)主要包括列表(Lists)、元组(Tuple)和字符串(Strings),其中字符串和元组是不可修改的。

序列通用操作

定义

1
ver = 'python3.6'

索引访问

1
2
3
4
5
ver[5]
> 'n'

ver[-1]
> '6'

slice

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ver[0:6]
> 'python'

ver[0:-3]
> 'python'

ver[:6]
> 'python'

ver[6:]
> '3.6'

ver[:]
> 'python3.6'

# 步长为2
ver[0::2]
> 'pto36'

ver[6::-2]
> '3otp'

concatenation
注意:不同数据类型不能拼接

1
2
ver[:6] + '-' + ver[6:]
> python3.6

repetition

1
2
3
4
5
ver[:-1] + ver[-1:] * 2
> python3.66

# 创建固定长度空序列
[None] * 12

是否存在

1
2
3
4
5
'3' in ver
> 'True'

3 in [1, 9, 3]
> 'True'

长度、最小值、最大值

1
2
3
4
5
6
7
8
len(ver)
> '9'

max(ver)
> 'y'

min(1, 9, 0)
> '0'

列表

定义

1
2
3
4
5
6
7
ct = ['Peru', 'India', 'Japan', 'Iran']

# 可嵌套
dot = [[1, 1], [1, 2], [1, 3]]

# 字符串转换为列表
list('python')

修改

1
2
ct[2] = 'Korea'
> ['Peru', 'India', 'Korea', 'Iran']

删除

1
2
del ct[1]
> ['Peru', 'Japan', 'Iran']

分片赋值

1
2
3
4
5
6
7
8
ct[2:] = ['Chain']
> ['Peru', 'India', 'Chain']

ct[:2] = []
> ['Japan', 'Iran']

ct[::2] = ['Russia', 'Germany']
> ['Russia', 'India', 'Germany', 'Iran']

追加

1
2
ct.append('America')
> ['Peru', 'India', 'Japan', 'Iran', 'America']

count

1
2
ct.count('Iran')
> '1'

list.extend(iterable)
等效于a[len(a):] = iterable.

1
2
ct.extend(['Egypt', 'Italy'])
> ['Peru', 'India', 'Japan', 'Iran', 'Egypt', 'Italy']

index

1
2
ct.index('Peru')
> '0'

insert

1
2
ct.insert(1, 'Canada')
['Peru', 'Canada', 'India', 'Japan', 'Iran']

pop

1
2
3
4
5
ct.pop()
> ['Peru', 'India', 'Japan']

ct.pop(0)
> ['India', 'Japan', 'Iran']

remove

1
2
ct.remove('India')
> ['Peru', 'Japan', 'Iran']

reverse

1
2
ct.reverse()
> ['Iran', 'Japan', 'India', 'Peru']

sort

1
2
ct.sort()
> ['India', 'Iran', 'Japan', 'Peru']

元组

定义

1
fruit = ('apple', 'banana', 'mango')

列表转换为元组

1
2
tuple(['Perl', 'Python', 'Java'])
> ('Perl', 'Python', 'Java')

分片

1
2
fruit[1:]
> ('banana', 'mango')

字典

字典是python中唯一内建的映射(mapping)类型

创建字典

1
emails = { '163': 'xiongjiaxuans@163.com', 'google': 'xiongjiaxuans@gmail.com', 'microsoft': 'lanewf@live.com' }

通过key访问

1
2
3
4
5
emails['google']
> 'xiongjiaxuans@gmail.com'

emails.get('qq', 'no')
> 'no'

长度

1
2
len(emails)
> '3'

key是否存在

1
2
'163' in emails
> 'True'