python 【3】

1. 列表、元组操作

列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

定义列表

1
names  =  [ 'Alex' , "Tenglan" , 'Eric' ]

通过下标访问列表中的元素,下标从0开始计数

1
2
3
4
5
6
7
8
>>> names[ 0 ]
'Alex'
>>> names[ 2 ]
'Eric'
>>> names[ - 1 ]
'Eric'
>>> names[ - 2 #还可以倒着取
'Tenglan'

切片:取多个元素 

 1  >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
 2   >>> names[1:4]  #取下标1至下标4之间的数字,包括1,不包括4
 3   ['Tenglan', 'Eric', 'Rain']
 4   >>> names[1:-1] #取下标1至-1的值,不包括-1
 5   ['Tenglan', 'Eric', 'Rain', 'Tom']
 6   >>> names[0:3] 
 7   ['Alex', 'Tenglan', 'Eric']
 8   >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
 9   ['Alex', 'Tenglan', 'Eric']
10  >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
11  ['Rain', 'Tom', 'Amy'] 
12  >>> names[3:-1] #这样-1就不会被包含了
13  ['Rain', 'Tom']
14  >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
15  ['Alex', 'Eric', 'Tom'] 
16  >>> names[::2] #和上句效果一样
17  ['Alex', 'Eric', 'Tom']
18 
19 
20 
21 #步长切片
22 print(names[0:7:2])
23 #  0  -1  可以省略
24 print(names[::2])
View Code

追加

>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
>>> names.append("我是新来的")
>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']

插入

1 >>> names
2 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
3 >>> names.insert(2,"强行从Eric前面插入")
4 >>> names
5 ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
6 
7 >>> names.insert(5,"从eric后面插入试试新姿势")
8 >>> names
9 ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
View Code

修改

>>> names
['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
>>> names[2] = "该换人了"
>>> names
['Alex', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
View Code
扫描二维码关注公众号,回复: 7335122 查看本文章

删除

>>> del names[2] 
>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
>>> del names[4]
>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
>>> 
>>> names.remove("Eric") #删除指定元素
>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']
>>> names.pop() #删除列表最后一个值 
'我是新来的'
>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
View Code

扩展

1 >>> names
2 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
3 >>> b = [1,2,3]
4 >>> names.extend(b)
5 >>> names
6 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
View Code

拷贝

>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

>>> name_copy = names.copy()
>>> name_copy
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

#  复制  copy  浅copy  多层列表只会copy第一层
names.append([3,4])
names2 = names.copy()
names[4] = 'TiAmo'
names[-1][0] = 2
print(names,names2)
'''
共用账号 联合账号 这种情况会用到浅COPY  把共用部分放到第二层
'''


#  深copy  会完全copy   必须调用copy 模块
'''
import  copy

names2 = copy.deepcopy(names)
'''
View Code

统计

1 >>> names
2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
3 >>> names.count("Amy")
View Code

排序&翻转

 1 >>> names
 2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
 3 >>> names.sort() #排序
 4 Traceback (most recent call last):
 5   File "<stdin>", line 1, in <module>
 6 TypeError: unorderable types: int() < str()   #3.0里不同数据类型不能放在一起排序了,擦
 7 >>> names[-3] = '1'
 8 >>> names[-2] = '2'
 9 >>> names[-1] = '3'
10 >>> names
11 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
12 >>> names.sort()
13 >>> names
14 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']
15 
16 >>> names.reverse() #反转
17 >>> names
18 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
View Code

获取下标

1 >>> names
2 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
3 >>> names.index("Amy")
4 2 #只返回找到的第一个下标
View Code

循环

1 # 列表循环
2 for i in names :
3     print(i)
View Code

元组

元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

语法

1
names  =  ( "alex" , "jack" , "eric" )

它只有2个方法,一个是count,一个是index,完毕。 

猜你喜欢

转载自www.cnblogs.com/garrett7/p/11568822.html
今日推荐