python_day2
带下划线:内置方法,执行方法可能有一种或多种。
不带下划线:非内置方法,执行只有一种。(对象.方法)
2. def format(*args, **kwargs):
S.format(*args, **kwargs) -> string
、简介
列表(list)是python以及其他语言中最常用到的数据结构之一。Python使用中括号[ ]来解析列表。列表是可变的(mutable)——可以改变列表的内容。
基本的列表操作
列表可以使用所有使用于序列的标准操作,例如索引、分片、连接和乘法。本文介绍一些可以改变列表的方法。
1.list函数
通过list(seq)函数把一个序列类型转换成一个列表。
List函数使用用于所有类型的序列,而只是字符串。
2.改变列表:元素赋值
使用索引标记来为某个特定的、位置明确的元素赋值。
不能为一个位置不存在的元素进行赋值。
3.删除元素
从列表中删除元素也很容易:使用del语句来实现。
除了删除列表中的元素,del语句还能用于删除其他元素。
4.分段赋值
使用分段赋值的时候可以使用与原序列不等长的序列将分片替换
同事通过分片赋值也可以来删除元素
三、列表方法
方法是一个与某些对象有紧密联系的函数。一般,方法可以这样调用:对象. 方法(参数)
除了对象被放置到方法名之前,并且两者之间用一个点号隔开。
- Append
append方法用于在列表末尾追加新的对象:
Append方法和其他一些方法类似,只是在恰当位置修改原来的列表。这意味着,它并不是简单返回一个修改过的新列表,而是直接修改原来的列表。
- Count
Count方法统计某个元素在列表中出现的次数:
- Extend
Extend方法可以在列表的末尾一次性追加另一个序列中的多个值。
- Index
Index方法用于从列表中找出某个值第一个匹配项的索引位置:
搜索不存在的时候返回错误通知
- Insert
Insert方法用于将对象插入到列表中:
- Pop
pop方法会移除列表中的一个元素(默认是最后一个),并返回该元素的值:
pop方法是唯一一个即能修改列表有返回元素值(除了none)的列表方法。
- Remove
Remove方法用于移除列表中某个值得第一个匹配
只有第一次出现的值被移除,而不存在与列表中的值是不会移除的。Remove是一个没有返回值的原位置改变方法。它修改了列表却没有返回值。
- Reverse
Reverse方法将列表中的元素反向存放。
该方法改变了列表但不返回值。
- Sort
Sort方法用于在原位置对列表进行排序
Sort方法修改了song却返回了空值
元组:不可变序列。
元组的意义:元组可以在映射(和集合的成员)中当作键使用——而列表则不行;元组作为很多内建函数和方法的返回值存在。
创建元组的语法很简单:如果你用逗号分隔开了一些值,那么你就自动创建了元组。
元组也是(大部分时候是)通过园括号括起来的:
实现包括一个值的元组有些奇特——必须加个逗号:
tuple函数的功能与list函数基本上是一样的:以一个序列作为参数并把它转化为元组。
字典是Python中唯一内建的映射类型。字典中的值并没有特殊的顺序,但是都存储在一个特定的键(Key)里。键可以是数字、字符串甚至是元组。
创建和使用字典
字典可以通过下面的方式创建:
>>> phonebook = {'Alice' : '2341', 'Beth' : '9102', 'Cecil' : '3258'}
字典由多个键及与其对应的值构成的对组成。每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典是由一对大括号括起来。字典中的键是唯一的,而值并不唯一。1. dict 函数
用 dict 函数,通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典。
字典的基本行为在很多方面与序列类似:
(1)len(d) 返回 d 中项(键-值对)的数量
(2)d[k] 返回关联到键 k 上的值
(3)d[k] = v 将值 v 关联到键 k 上
(4)del d[k] 删除键为 k 的项
(5)k in d 检查 d 中是否有含有键为 k 的项
尽管字典和列表有很多特性相同,但也有下面一些重要的区别。
(1)键类型:字典的键不一定为整型数据(但也可能是),也可能是其他不可变类型,比如浮点型(实型)、字符串或者元组。
(2)自动添加:即使那个键起初在字典中并不存在,也可以为它分配一个值,这样字典就会建立新的项。
(3)成员资格:表达式 k in d (d 为字典) 查找的是键,而不是值。
3. 字典的格式化字符串
在每个转换(conversion specifier)中的 % 字符后面,可以加上用圆括号括起来的键,后面再跟上其他说明元素。
- >>> phonebook
- {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
- >>> "Cecil's phone number is %(Cecil)s." % phonebook
- "Cecil's phone number is 3258."
- >>> template = '''''<html>
- ... <head><title>%(title)s</title></head>
- ... <body>
- ... <h1>%(title)s</h1>
- ... <p>%(text)s</p>
- ... </body>'''
- >>> data = {'title':'My Home Page', 'text':'Welcome to my home page!'}
- >>> print(template % data)
- <html>
- <head><title>My Home Page</title></head>
- <body>
- <h1>My Home Page</h1>
- <p>Welcome to my home page!</p>
- </body>
(1) clear
clear 方法清除字典中所有的项。这是个原地操作,所以无返回值(或者说返回 None)。
- >>> d
- {'name': 'Gumby', 'age': 42}
- >>> retured_value = d.clear()
- >>> d
- {}
- >>> retured_value
- >>> print(retured_value)
- None
(2) copy
copy 方法返回一个具有相同键-值对的新字典(这个方法实现的是浅复制(shallow copy),因为值本身就是相同的,而不是副本)。
- >>> x = {'username':'admin', 'machines':['foo', 'bar', 'baz']}
- >>> y = x.copy()
- >>> y['username'] = 'mlh'
- >>> y['machines'].remove('bar')
- >>> y
- {'username': 'mlh', 'machines': ['foo', 'baz']}
- >>> x
- {'username': 'admin', 'machines': ['foo', 'baz']}
避免这个问题的一种方法就是使用深复制( deep copy),复制其包含所有的值。可以使用 copy 模块的 deepcopy 函数来完成操作。
(3)fromkeys
fromkeys 方法使用给定的键建立新的字典,每个键默认对应的值为 None。
- >>> {}.fromkeys(['name', 'age'])
- {'name': None, 'age': None}
- >>> dict.fromkeys(['name', 'age'])
- {'name': None, 'age': None}
- >>> dict.fromkeys(['name', 'age'], '(unknown)')
- {'name': '(unknown)', 'age': '(unknown)'}
(4)get
当使用 get 访问一个不存在的键时,没有任何异常,而得到了 None 值。
- >>> print(d['name'])
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- KeyError: 'name'
- >>> print(d.get('name'))
- None
- >>> d.get('name', 'N/A')
- 'N/A'
(5)items
items 方法将所有的字典项以dict_items 方式返回,这些列表项中的每一项都来自于(键,值)。
- >>> d = {'title':'Python Web Site', 'url':'http://www.python.org', 'spam':0}
- >>> d
- {'url': 'http://www.python.org', 'title': 'Python Web Site', 'spam': 0}
- >>> d.items()
- dict_items([('url', 'http://www.python.org'), ('title', 'Python Web Site'), ('spam', 0)])
(6)keys
keys 方法将字典中的键以 dict_keys 形式返回。
(7)pop
pop 方法用来获得对应于给定键的值,然后将这个键-值对从字典中移除。
- >>> d = {'x':1, 'y':2}
- >>> d.pop('x')
- 1
- >>> d
- {'y': 2}
(8)popitem
popitem 弹出随机的项。
- >>> d
- {'url': 'http://www.python.org', 'title': 'Python Web Site', 'spam': 0}
- >>> d.popitem()
- ('url', 'http://www.python.org')
- >>> d
- {'title': 'Python Web Site', 'spam': 0}
(9)setdefault
setdefault 方法在某种程度上类似于 get 方法,就是能够获得与给定键相关联的值,除此之外,setdefault 还能在字典中不含有给定键的情况下设定相应的键值。
- >>> d = {}
- >>> d.setdefault('name', 'N/A')
- 'N/A'
- >>> d
- {'name': 'N/A'}
- >>> d['name'] = 'Gumby'
- >>> d.setdefault('name', 'N/A')
- 'Gumby'
- >>> d
- {'name': 'Gumby'}
(10)update
update 方法可以利用一个字典项更新另一个字典。
- >>> d = {'title':'Python Web Site', 'url':'http://www.python.org', 'changed':'Mar 14 22:09:15 MET 2008'}
- >>> x = {'title':'Python Language Website'}
- >>> d.update(x)
- >>> d
- {'url': 'http://www.python.org', 'title': 'Python Language Website', 'changed':'Mar 14 22:09:15 MET 2008'}
(11)values
values 方法以 dict_values 的形式返回字典中的值。
- >>> d = {}
- >>> d[1] = 1
- >>> d[2] = 2
- >>> d[3] = 3
- >>> d[4] = 4
- >>> d.values()
- dict_values([1, 2, 3, 4])
1. iphone6s 6099