python列表元组集合字典_python笔记-列表list、元组tuple、字典dict、集合set

list(列表)是一种有序的集合,可以随时添加和删除其中的元素。

tuple(元组)也是一种有序集合,但是一旦初始化就不能修改。

列表 list

# 用列表(list)储存序列

li = []

len(li) # => 0

# 创建列表时也可以同时赋给元素

other_li = [4, 5, 6]

# 用append()在列表最后追加元素

li.append(1) # li现在是[1]

li.append(2) # li现在是[1, 2]

li.append(4) # li现在是[1, 2, 4]

li.append(3) # li现在是[1, 2, 4, 3]

#获取最后一个元素

li[-1] # => 3

#list作为另一个list的元素:

L = [1, 2, 3, [a, b, c], 4, 5]

L[3][2] # => b

# 用pop从列表尾部删除

li.pop() # li现在是[1, 2, 4]

# 把3再放回去

li.append(3) # li变回[1, 2, 4, 3]

# 列表存取跟数组一样

li[0] # => 1

# 取出最后一个元素

li[-1] # => 3

# 越界存取会造成IndexError

li[4] # 抛出IndexError

# 用del删除任何一个元素

del li[2] # li 现在是[1, 2, 3]

# 列表可以相加,注意:li和other_li的值都不变

li + other_li # => [1, 2, 3, 4, 5, 6]

# 用extend拼接列表

li.extend(other_li) # li现在是[1, 2, 3, 4, 5, 6]

# 用in测试列表是否包含值

1 in li # => True

# 用len取列表长度

len(li) # => 6

元组 tuple

因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。列表的操作方法,元组大多也可以。

tup = (1, 2, 3)

tup[0] # => 1

tup[0] = 3 # 抛出TypeError

len(tup) # => 3

tup + (4, 5, 6) # => (1, 2, 3, 4, 5, 6)

2 in tup # => True

# 可以把元组合列表解包,赋值给变量

a, b, c = (1, 2, 3) # 现在a是1,b是2,c是3

# 元组周围的括号是可以省略的

d, e, f = 4, 5, 6

# 交换两个变量的值

e, d = d, e # 现在d是5,e是4

list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。

字典 dict

Python内置了字典dict的支持,使用键-值(key-value)存储,具有极快的查找速度。但是占用内存大。

# 定义一个空字典

empty_dict = {}

# 初始化的字典

filled_dict = {'one': 1, 'two': 2, 'three': 3}

# 用[]取值

filled_dict['one'] # => 1

# 用keys获得所有的键。因为keys返回一个可迭代对象,所以在这里把结果包在list里。

# 注意:字典键的顺序是不定的,你得到的结果可能和以下不同。

list(filled_dict.keys()) # => ['three', 'two', 'one']

# 用values获得所有的值。跟keys一样,要用list包起来,顺序也可能不同。

list(filled_dict.values()) # => [3, 2, 1]

# 用in测试一个字典是否包含一个键

'one' in filled_dict # => True

1 in filled_dict # => False

# 访问不存在的键会导致KeyError

filled_dict['four'] # KeyError

# 用get来避免KeyError,如果不存在返回None

filled_dict.get('one') # => 1

filled_dict.get('four') # => None

# 当键不存在的时候get方法可以返回默认值

filled_dict.get('one', 4) # => 1

filled_dict.get('four', 4) # => 4

# setdefault方法只有当键不存在的时候插入新值

filled_dict.setdefault('five', 5) # filled_dict['five'] 设为 5

filled_dict.setdefault('five', 6) # filled_dict['five'] 还是 5

# 字典赋值

filled_dict.update({'four': 4}) #=> {'one': 1, 'two': 2, 'three': 3, 'four': 4}

filled_dict['four'] = 4 # 另一种赋值方法

# 用del删除

del filled_dict['one'] # 从filled_dict中把one删除

集合 set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以在set中,没有重复的key。

# 用set表达集合

empty_set = set()

# 传入列表转为集合

set([1, 2, 3])

# 初始化一个集合,语法跟字典相似。

some_set = {1, 1, 2, 2, 3, 4} # some_set现在是{1, 2, 3, 4}

# 可以把集合赋值于变量

filled_set = some_set

# 用add(key)为集合添加元素,重复添加不会有效果

filled_set.add(5) # filled_set现在是{1, 2, 3, 4, 5}

# 通过remove(key)方法可以删除元素:

filled_set.remove(5)

# & 取交集

other_set = {3, 4, 5, 6}

filled_set & other_set # => {3, 4, 5}

# | 取并集

filled_set | other_set # => {1, 2, 3, 4, 5, 6}

# - 取补集

{1, 2, 3, 4} - {2, 3, 5} # => {1, 4}

# in 测试集合是否包含元素

2 in filled_set # => True

10 in filled_set # => False

使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值