Python基本语法——列表、元组、字典、字符串

一、列表(List)
List(列表) 是 Python 中最通用的序列。列表是一个任意类型对象位置的相关有序集合,它没有固定大小。
索引是从0开始而非1开始。
列表中值的分割用变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认“0”开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。可以对列表进行索引、切片等操作。
>>> A = [1, 'Hello World!', 3.14]
>>> len(A)
3
>>> print(A[-1])
3.14
>>> print(A[0:1])
[1]
>>> print(A[0:-1])
[1, 'Hello World!']
>>> A + [2, 3, 'a']
[1, 'Hello World!', 3.14, 2, 3, 'a']

Python 的列表数据类型包含更多的方法:
1)list.append(x) 把一个元素添加到列表的结尾。
>>> L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> L.append('a')
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a']


2)list.extend(L) 将一个给定列表中的所有元素都添加到另一个列表中。
>>> L1 = []
>>> L1.extend(L)
>>> L1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a']

3)list.insert(i, x) 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x)。
>>> L.insert(3, 'b')
>>> L
[0, 1, 2, 'b', 3, 4, 5, 6, 7, 8, 9, 'a']

4)list.remove(x) 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
>>> L.remove(3)
>>> L
[0, 1, 2, 'b', 4, 5, 6, 7, 8, 9, 'a']

4)list.pop([i]) 从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop() 返回最后一个元素。元素随即从链表中被删除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,这个经常会在 Python 库参考手册中遇到这样的标记。)
>>> L.pop()
'a'
>>> L
[0, 1, 2, 'b', 4, 5, 6, 7, 8, 9]
>>> L.pop(3)
'b'
>>> L
[0, 1, 2, 4, 5, 6, 7, 8, 9]

5)list.index(x) 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
>>> L.index(4)
3
>>> L.index(10)
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    L.index(10)
ValueError: 10 is not in list

6)list.count(x) 返回 x 在链表中出现的次数。
list.sort(cmp=None, key=None, reverse=False) 对列表中的元素进行排序(参数可以用来自定义排序方法,参考 sorted() 的更详细的解释)。
>>> L.append(0)
>>> L
[0, 1, 2, 4, 5, 6, 7, 8, 9, 0]
>>> L.count(0)
2
>>> 

7)list.reverse() 就地倒排链表中的元素
>>> L.reverse()
>>> L
[0, 9, 8, 7, 6, 5, 4, 2, 1, 0]

二、字典(dictionary)
1)序列(或者列表)是以连续的整数为索引,与此不同的是,字典以”关键字”为索引,关键字可以是任意不可变类型,通常用字符串或数值。如果元组中只包含字符串和数字,它可以作为关键字,如果它直接或间接地包含了可变对象,就不能当做关键字。不能用列表做关键字,因为列表可以用索引、切割或者 append() 和 extend() 等方法改变。
2)字典是无序的键:值对 (key:value 对)集合,键必须是互不相同的(在同一个字典之内)。使用大括号创建一个空的字典:{}。初始化列表时,在大括号内放置一组逗号分隔的键:值对,这也是字典输出的方式。
3)字典的主要操作是依据键来存储和取值。

>>> D = {'A':12, 'B':23, 'C':34}
>>> D
{'C': 34, 'B': 23, 'A': 12}

>>> D1 = {}
>>> D1['A'] = 11
>>> D1['B'] = 22
>>> D1['C'] = 33
>>> D1
{'C': 33, 'B': 22, 'A': 11}

常用的字典操作方法:
1)D.clear()删除字典内所有元素
>>> D
{'C': 34, 'B': 23, 'A': 12}
>>> D.clear()
>>> D
{}

2)D.copy()返回一个字典的复制
>>> D1
{'C': 33, 'B': 22, 'A': 11}
>>> D
{}
>>> D = D1.copy()
>>> D
{'C': 33, 'B': 22, 'A': 11}

3)D.fromkeys(seq,val)创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
>>> D.fromkeys('d', 44)
{'d': 44}

4)D.get(key, default=None)返回指定键的值,如果值不在字典中返回default值
>>> D.get('X', 'None')
'None'
>>> D.get('A', 'None')
11

5)D.items()以列表返回可遍历的(键, 值) 元组数组
>>> for key, value in D.items():
    print(key, ':', value)
    
C : 33
B : 22
A : 11

6)D.keys()以列表返回一个字典所有的键
>>> D
{'B': 22, 'A': 11, 'C': 33}
>>> D.keys()
dict_keys(['B', 'A', 'C'])

7)D.values()以列表返回字典中的所有值
>>> D.values()
dict_values([22, 11, 33])

8)D.pop(key)删除一个键并返回它的值,类似于列表的pop,只不过删除的是一个键不是一个可选的位置
>>> D.pop('B')
22
>>> D
{'A': 11, 'C': 33}

三、元组(Tuple)
创建元组:
tup1 = ()
tup2 = (520,)
tup3 = (12, 34)
tup4 = ('a', 'b', 'c')

调用:
>>> tup4[2]
'c'

修改元组:元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如:
>>> tup5 = tup3 + tup4
>>> tup5
(12, 34, 'a', 'b', 'c')

删除元组:元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组:
>>> tup2
(520,)
>>> del tup2
>>> tup2
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    tup2
NameError: name 'tup2' is not defined

Python 的元组数据类型包含更多的方法。
1)tup.index(x, [start, [stop]])) 返回元组中start到stop索引中第一个值为 x 的元素在整个列表中的索引。如果没有匹配的元素就会返回一个错误。
>>> tup5
(12, 34, 'a', 'b', 'c')
>>> tup5.index('a')
2

2)tup.count(x) 返回 x 在元组中出现的次数。
>>> tup5.count('a')
1

3)len(tuple) 计算元组元素个数。
>>> len(tup5)
5

4)max(tuple) 返回元组中元素最大值。
>>> tup3
(12, 34)
>>> max(tup3)
34

5)min(tuple) 返回元组中元素最小值。
>>> min(tup3)
12

四、字符串
字符串可以用''或者""括起来表示。
下面介绍一个使用频率比较高的字符串处理功能:格式化。

我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。在Python中,用%来实现字符串的格式化,举例如下:
>>> 'Hello, %s' % 'world'
'Hello, world'

>>> 'hi, %s, you have $%d.' % ('Mark', 100)
'hi, Mark, you have $100.'

在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串.

有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%:
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'

字符串可以用+号连接起来,用*号重复:
>>> word = 'help' + 'A'
>>> word
'helpA'
>>> '<' + word*5 + '>'
'<helpAhelpAhelpAhelpAhelpA>'

>>> word
'helpA'
>>> word[4]
'A'
>>> word[0:2]
'he'
>>> word[2:4]
'lp'

猜你喜欢

转载自blog.csdn.net/zhaocen_1230/article/details/81164554