python内置容器:列表、字典、集合、元组,都可以容纳数据。
1、列表
相当于Java中的List集合,可以动态改变大小。区别是Java中类型必须是一样的,这里可以是不同类型的元素。
xs = [3, 1, 2] # 创建一个List集合 print(xs, xs[2]) # Prints "[3, 1, 2] 2" print(xs[-1]) # 倒数第一个 xs[2] = 'foo' # 下标为2的元素改为‘foo’字符串 print(xs) # Prints "[3, 1, 'foo']" xs.append('bar') # 追加一个新的元素 print(xs) # Prints "[3, 1, 'foo', 'bar']" x = xs.pop() # 弹出最后一个元素,出栈操作,并返回出栈的元素。 print(x, xs) # Prints "bar [3, 1, 'foo']"
如果要访问循环体内每个元素的索引,请使用内置的 enumerate(枚举)
函数:
animals = ['cat', 'dog', 'monkey'] for idx, animal in enumerate(animals): print('#%d: %s' % (idx + 1, animal)) # Prints "#1: cat", "#2: dog", "#3: monkey
列表推导式
nums = [0, 1, 2, 3, 4]
squares = [x ** 2 for x in nums] # nums中的每个元素的平方
print(squares) # Prints [0, 1, 4, 9, 16]
# 还可以附加其他的条件
nums = [0, 1, 2, 3, 4]
even_squares = [x ** 2 for x in nums if x % 2 == 0]
print(even_squares) # Prints "[0, 4, 16]"
2、字典
字典存储(键,值)对,类似于Java中的Map
d = {'cat': 'cute', 'dog': 'furry'} # 以冒号区分键和值,以逗号区分每队键值 print(d['cat']) # 根据键获取值 print('cat' in d) # 检查该键是否存在于该容器中。 d['fish'] = 'wet' # 设置一对键值 print(d['fish']) # Prints "wet" # print(d['monkey']) # KeyError: 'monkey' not a key of d print(d.get('monkey', 'N/A')) # Get an element with a default; prints "N/A" print(d.get('fish', 'N/A')) # Get an element with a default; prints "wet" del d['fish'] # 删除键为‘fish’的键值 print(d.get('fish', 'N/A')) # "fish" is no longer
# 字典的遍历 d = {'person': 2, 'cat': 4, 'spider': 8} for animal in d: # 依次获取d中的键 legs = d[animal] # 根据获取的键得到值 print('A %s has %d legs' % (animal, legs))
# 同时访问键及其对应的值,请使用items方法: d = {'person': 2, 'cat': 4, 'spider': 8} for animal, legs in d.items(): # 分别获取d中元素的键和值 print('A %s has %d legs' % (animal, legs)) # Prints "A person has 2 legs", "A cat has 4 legs", "A spider has 8 legs"
3、集合(set)
集合和列表的区别:
1、列表是有序的,集合是无序的
2、列表是可以含有相同元素的,集合是不含有相同元素的
对于集合,加入相同的元素是无效的。
推导式:
from math import sqrt nums = {int(sqrt(x)) for x in range(30)} # 0--29 依次开方,向下取整
print(nums)
4、元组
元组是(不可变的)有序值列表。 元组在很多方面类似于列表; 其中一个最重要的区别是元组可以用作字典中的键和集合的元素,而列表则不能。
d = {(x, x + 1): x for x in range(10)} # d是一个字典,元素为(0--9,1--10):0--9,该字典中的键是元组 t = (5, 6) print(type(t)) print(d[t]) print(d[(1, 2)])