python笔记---内置容器

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)]) 
原文地址:https://www.cnblogs.com/smartmsl/p/10575674.html