列表的生成方法:
快捷创建list,两种方式:split方法、list函数和range函数配合使用
split切割字符串:
1
2
>>>
'a,b,c,d'
.split(
','
)
[
'a'
,
'b'
,
'c'
,
'd'
]
list函数生成列表
1
2
>>>
list
(
'abcd'
)
[
'a'
,
'b'
,
'c'
,
'd'
]
list和range函数配合生成列表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>>
list
(
range
(
10
))
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
>>> [x
for
x
in
range
(
5
)]
#python列表解析器
[
0
,
1
,
2
,
3
,
4
]
>>> [x
for
x
in
range
(
10
)
if
x
%
2
=
=
0
]
#加判断条件
[
0
,
2
,
4
,
6
,
8
]
>>> [x
+
2
for
x
in
range
(
10
)
if
x
%
2
=
=
0
]
#还可以在前面加上运算
[
2
,
4
,
6
,
8
,
10
]
>>> [(x,y
+
1
)
for
x
in
range
(
3
)
for
y
in
range
(
3
)]
#生成一个2*3的循环表
[(
0
,
1
), (
0
,
2
), (
0
,
3
), (
1
,
1
), (
1
,
2
), (
1
,
3
), (
2
,
1
), (
2
,
2
), (
2
,
3
)]
>>> l
=
[]
#也可以用for循环生成,但是效率没列表解析器高
>>>
for
i
in
range
(
5
):
...???? l.append(i)
...
else
:
...
print
l
...
[
0
,
1
,
2
,
3
,
4
]
读取列表和切片访问
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>> a
=
list
(
'abcde'
)
>>> a
[
'a'
,
'b'
,
'c'
,
'd'
,
'e'
]
>>> a[
1
]
#取列表中第二个字符,注意列表是从0开始计数的
'b'
>>> a[:]
#取列表中全部内容
[
'a'
,
'b'
,
'c'
,
'd'
,
'e'
]
>>> a[
1
:]
#取第二个字符到结尾的内容
[
'b'
,
'c'
,
'd'
,
'e'
]
>>> a[
1
:
3
]
#取第二个字符到第四个字符之前的内容,不包括第四个字符
[
'b'
,
'c'
]
>>> a[:
3
]
#取开头到第四个字符之前的内容
[
'a'
,
'b'
,
'c'
]
>>> a[:
-
1
]
#取开头到最后一个字符之前的内容
[
'a'
,
'b'
,
'c'
,
'd'
]
>>> a[
-
2
:
-
3
]
#因为取值都是从左到右,倒序也是,所以-2和-3无重叠,为空
[]
>>> a[
-
2
:
-
1
]
#取倒数第二个字符到倒数第一个字符之前的内容
[
'd'
]
3. 列表新增内容
append、extend、+、insert
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
>>> a
=
[
1
,
2
,
3
]
>>> a.append(
'a,b'
)
#append在列表最后添加,原样添加
>>> a
[
1
,
2
,
3
,
'a,b'
]
>>> a.append([
'a'
,
'b'
])
>>> a
[
1
,
2
,
3
,
'a,b'
, [
'a'
,
'b'
]]
>>> a
+
[
'a'
,
'b'
]
#合并列表,列表比较大时耗费内存
[
1
,
2
,
3
,
'a,b'
, [
'a'
,
'b'
],
'a'
,
'b'
]
>>> a
#用+合并列表时并不改变原列表
[
1
,
2
,
3
,
'a,b'
, [
'a'
,
'b'
]]
>>> a.extend(
'ab'
)
#当extend括号里面不是列表时,他会把内容拆分追加到a之后
>>> a
[
1
,
2
,
3
,
'a,b'
, [
'a'
,
'b'
],
'a'
,
'b'
]
>>> a.extend([
'ab'
,
'ac'
])
#当extend括号里面是列表时,他会把列表内容追加到a之后
>>> a
[
1
,
2
,
3
,
'a,b'
, [
'a'
,
'b'
],
'a'
,
'b'
,
'ab'
,
'ac'
]
>>> a.insert(
3
,
4
)
#insert 在第3个位置插入4(从0开始计数)
>>> a
[
1
,
2
,
3
,
4
,
'a,b'
, [
'a'
,
'b'
],
'a'
,
'b'
,
'ab'
,
'ac'
]
>>> a.insert(
4
,[
'abc'
])
#插入列表
>>> a
[
1
,
2
,
3
,
4
, [
'abc'
],
'a,b'
, [
'a'
,
'b'
],
'a'
,
'b'
,
'ab'
,
'ac'
]
4. 修改列表内容
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> a
=
[
1
,
2
,
3
,
4
]
>>> a[
1
]
=
5
#把列表第1个计数位置的值修改成5(从0开始计数)
>>> a
[
1
,
5
,
3
,
4
]
>>> a[
1
:]
=
'abc'
#把第列表第1个计数位置到最后计数位置修改成abc,注意如果是切片替换的话,字符串abc被切割了
>>> a
[
1
,
'a'
,
'b'
,
'c'
]
>>> a[
1
]
=
'abc'
#但是给某个索引直接赋值时,就不切割了
>>> a
[
1
,
'abc'
,
'b'
,
'c'
]
>>> a[
1
:]
=
[
'abc'
]
#如果替换成的是列表也不会切割
>>> a
[
1
,
'abc'
]
5. 删除列表内容
del、remove、pop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>> a
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
#del可以按照索引和切片来删除
>>>
del
a[
1
]
#删除计数为1的内容
>>> a
[
1
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
>>>
del
a[
-
3
:]
#删除倒数第三个位置一直到最后的内容
>>> a
[
1
,
3
,
4
,
5
,
6
]
#remove只能按照值来删除
>>> a.remove(
4
)
#删除列表中值为4的内容
>>> a
[
1
,
3
,
5
,
6
]
>>> a.pop()
#pop默认删除最后一个内容,并返回结果
6
>>> a
[
1
,
3
,
5
]
>>> a.pop(
1
)
#删除索引为1的内容
3
>>> a
[
1
,
5
]
6. 排序和反转
sort、reverse
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
>>> a
=
[
4
,
3
,
7
,
5
,
1
]
>>> a.reverse()
#reverse反转
>>> a
[
1
,
5
,
7
,
3
,
4
]
>>> a.sort()
#sort排序
>>> a
#sort后a的列表排序也改变了,但如果不想让a的排序改变呢?
[
1
,
3
,
4
,
5
,
7
]
>>> a
=
[
4
,
3
,
7
,
5
,
1
]
>>> y
=
a.sort()
#这种做法是不行的,因为sort是直接改变列表的排序,不返回内容,所以y为空
>>> y
>>> a
[
1
,
3
,
4
,
5
,
7
]
>>> a
=
[
4
,
3
,
7
,
5
,
1
]
>>> y
=
a[:]
#先把a赋值给y
>>> y
[
4
,
3
,
7
,
5
,
1
]
>>> y.sort()
#排序
>>> y
[
1
,
3
,
4
,
5
,
7
]
>>> a
#y的值改变了,a的值没有改变
[
4
,
3
,
7
,
5
,
1
]
>>> a
=
[
4
,
3
,
7
,
5
,
1
]
>>> y
=
a
#不能把a直接赋值给y,那样y和a想当于软连接,y改变,a也会改变的
>>> y.sort()
>>> y
[
1
,
3
,
4
,
5
,
7
]
>>> a
#a也改变了
[
1
,
3
,
4
,
5
,
7
]
7. 计数和索引位置
count、index
1
2
3
4
5
6
7
8
9
>>> x
=
[
'a'
,
'b'
,
'c'
,
'a'
,
'b'
,
'a'
,
'a'
,
'a'
]
>>> x.count(
'a'
)
#计算a出现的个数
5
>>> x.index(
'b'
)
#index查到b第一次出现的索引位置
1
>>> x.index(
'a'
)
#查找a第一次出现的索引位置
0
>>> x.index(
'a'
,
2
,
-
1
)
#查到从索引为2的位置到最后中第一次a的索引位置
3
8. 判断:
1
2
3
4
5
6
7
>>> x
=
[
'a'
,
'b'
,
'c'
,
'e'
]
>>>
'e'
in
x
#in
True
>>>
'f'
in
x
False
>>>
'f'
not
in
x
#not in
True
原文地址:python之列表使用方法总结, 感谢原作者分享。 一个人的心胸宽阔,可以容不能容的事,可以赢难以赢的人。