内置数据类型之字典,列表,元祖

一.字典

1.创建字典

定义了键和值之间一对一的关系

>>> d={'apple':'sweet','orange':'acid'}
>>> d
{'apple': 'sweet', 'orange': 'acid'}
>>> d['apple']
'sweet'
>>> d['orange']
'acid'
>>> d['sweet']
Traceback (most recent call last):
  File "<pyshell#40>", line 1, in <module>
    d['sweet']
KeyError: 'sweet'

创建了新的字典,有两个元素,将其赋给变量d,每个元素都是一个键值对,整个元素集合用大括号括起来。

通过key来引用其值,但不能通过value获取key,所以d['sweet']会引发一个异常。


2.修改字典

>>> d['banana']='nice'
>>> d
{'apple': 'sweet', 'orange': 'yellow', 'banana': 'nice'}
>>> d['apple']='sweet'
>>> d
{'apple': 'sweet', 'orange': 'yellow', 'banana': 'nice'}
在任何时候都可以加入新的键值对。

在一个字典中不能有重复的key,给一个存在的key赋值会覆盖原有的值。

字典是无序的

字典的key是大小写敏感的。

>>> d={}
>>> d['key']='value'
>>> d['key']='second value'
>>> d
{'key': 'second value'}
>>> d['Key']='third value'
>>> d
{'key': 'second value', 'Key': 'third value'}
字典的值可以是任意数据类型。包括字符串,整数,对象,甚至其他字典。字典的值可以根据需要混用和匹配。

字典的key则比较严格,可以是字符串,整数或其他几种类型,也可以一个字典中混用和匹配key的数据类型


3.删除字典

del允许使用key从一个字典中删除独立的元素

clear从一个字典中清除所有元素。

>>> d
{'key': 'second value', 'apple': 3, 'Key': 'third value'}
>>> del d['key']
>>> d
{'apple': 3, 'Key': 'third value'}
>>> d.clear()
>>> d
{}


二,列表介绍

1.定义List

>>> alist=[1,'a',2.4,'world','hello']
>>> alist
[1, 'a', 2.4, 'world', 'hello']
>>> alist[0]
1
>>> alist[-1]
'hello'
List是一个用方括号括起来的有序元素集合。

List可以作为以0为下标开始的数组,任何一个非空list的第一个元素总是li[0],最后一个元素总是li[-1]


2,list切片

>>> alist[2:4]
[2.4, 'world']
可以通过指定2个索引得到list的子集,叫做一个"slice",返回值是一个新的list。

3.向list中增加元素

>>> alist
[1, 'a', 2.4, 'world', 'hello']
>>> alist.append('new')
>>> alist
[1, 'a', 2.4, 'world', 'hello', 'new']
>>> alist.insert(2,'second')
>>> alist
[1, 'a', 'second', 2.4, 'world', 'hello', 'new']
>>> alist.extend(['two','elements'])
>>> alist
[1, 'a', 'second', 2.4, 'world', 'hello', 'new', 'two', 'elements']

append向list末尾追加单个元素

insert将单个元素插入指定位置的list中,list中的元素不必唯一。

extend用来连接list。使用一个list参数进行调用。


#extend(扩展)和append(追加)的差别

extend接收一个参数,这个参数总是一个list,并把这个list中的每个元素添加到元list中。

append接收一个参数,这个参数可以是任何数据类型,并且简单的追加到list的尾部。

>>> li=['a','b','c']
>>> li.extend(['d','e','f'])
>>> li
['a', 'b', 'c', 'd', 'e', 'f']
>>> ali=['a','b','c']
>>> ali.append(['d','e','f'])
>>> ali
['a', 'b', 'c', ['d', 'e', 'f']]


4.搜索list

index在list中查找一个值的首次出现并返回索引值。

如果没有找到值会引发一个异常。

要测试一个值是否在list内,使用in。返回一个布尔值

>>> ali.index('a')
0
>>> ali.index('e')
Traceback (most recent call last):
  File "<pyshell#70>", line 1, in <module>
    ali.index('e')
ValueError: 'e' is not in list
>>> 'e' in ali
False

Python中的false和true

0为false

空串("")为false

空list([])为false

空tuple(())为false

空字典({})为false

其他为true

5.从list中删除元素(remove)

>>> ali.remove('b')
>>> ali
['a', 'c', ['d', 'e', 'f']]
>>> ali.remove('e')
Traceback (most recent call last):
  File "<pyshell#74>", line 1, in <module>
    ali.remove('e')
ValueError: list.remove(x): x not in list
>>> ali.pop()
['d', 'e', 'f']
>>> ali
remove从list中删除一个值的首次出现,若没有找到值,则引发异常。

pop做两件事,删除list最后一个元素,然后返回删除的值。

6.list运算符

>>> ali+li
['a', 'c', 'a', 'b', 'c', 'd', 'e', 'f']
>>> li
['a', 'b', 'c', 'd', 'e', 'f']
>>> ali*3
['a', 'c', 'a', 'c', 'a', 'c']
>>> ali+=['two']
>>> ali
['a', 'c', 'two']


三,tuple

1.tuple没有方法

>>> atu
('a', 'b', 'c')
>>> atu.append('d')
Traceback (most recent call last):
  File "<pyshell#84>", line 1, in <module>
    atu.append('d')
AttributeError: 'tuple' object has no attribute 'append'
>>> atu.remove('a')
Traceback (most recent call last):
  File "<pyshell#85>", line 1, in <module>
    atu.remove('a')
AttributeError: 'tuple' object has no attribute 'remove'
>>> atu.index('b')
1
>>> atu.insert(2,'two')
Traceback (most recent call last):
  File "<pyshell#87>", line 1, in <module>
    atu.insert(2,'two')
AttributeError: 'tuple' object has no attribute 'insert'
不能向tuple增加元素

不能从tuple删除元素

不能向tuple插入元素

可以查找tuple元素索引

可使用in查看元素是否在tuple中。


tuple的好处:

比list操作速度快

可以是代码更安全

可以在字典中被用作key,而list不行。只有字符串,整数或其他内容不变的tuple才可以被用作字典的key

tuple可以用在格式化字符串中


2.tuple可以转换成list,反之亦然。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值