数据类型(列表)

列表 [ ]

列表是一个数据的集合,集合内可以放任何数据类型,可对集合进行方便的正删改查操作。(值可以重复,有序

定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素

特性:

1.可存放多个值

2.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序

3.可修改指定索引位置对应的值,可变

创建

L1 = []#定义空列表
L2 = ['a','b','c','d']#存4个值,索引为0~3
L3 = ['abc','def','ghi']#嵌套列表

查询

L2.index('a')#返回指定元素的索引值,从左向右查找,找到第一个匹配

L2.count('a')#统计指定元素的个数

L2 = ['a','b','c','d','a','e',1,2]#存8个值,索引为0~7
print(L2[2])#通过索引取值,打印
print(L2[-1])#通过索引从列表右边开始取值,打印
print(L2[-2])
print(L2.index('a'))#返回指定元素的索引值,从左向右查找,找到第一个匹配,打印
print(L2.count('a'))#统计指定元素的个数,打印

  输出

c
2
1
0
2

索引(下标)从0开始,从左往右增加

切片(顾头不顾尾!从左往右!)

:

L2 = ['a','b','c','d','a','e',1,2]#存8个值,索引为0~7
print(L2[0:3])#返回从索引0至3的元素,不包括3,打印
print(L2[:-1])#返回从索引0至最后一个值,不包括最后一个值,打印
print(L2[3:6])#返回从索引3至6的元素,打印
print(L2[3:])#返回从索引3至最后所有的值,打印
print(L2[:3])#返回从索引1至3的值,打印
print(L2[1:6:2])#返回索引1至6的值,但步长为2(每隔一个元素,取一个值),打印
print(L2[:])#返回所有的值,打印
print(L2[::2])#按步长为2,返回所有值,打印

输出

['a', 'b', 'c']
['a', 'b', 'c', 'd', 'a', 'e', 1]
['d', 'a', 'e']
['d', 'a', 'e', 1, 2]
['a', 'b', 'c']
['b', 'd', 'e']
['a', 'b', 'c', 'd', 'a', 'e', 1, 2]
['a', 'c', 'a', 1]

追加

L2.append("A")#列表最后面追加A

L2 = ['a','b','c','d','a','e',1,2]#存8个值,索引为0~7
L2.append("A")#列表最后面追加A
print(L2)#打印

  输出

['a', 'b', 'c', 'd', 'a', 'e', 1, 2, 'A']

增加

L2.insert(3,"B")#在列表的索引为3的位置 插入 一个值 B

L2 = ['a','b','c','d','a','e',1,2]
L2.insert(3,"B")#在列表的索引为3的位置 插入 一个值 B
print(L2) #打印

  输出

['a', 'b', 'c', 'B', 'd', 'a', 'e', 1, 2]  

修改

重新赋值

L2 = ['a','b','c','d','a','e',1,2]#存8个值,索引为0~7
L2[3] = "Boy"#把索引3的元素修改为Boy
print(L2)#打印
L2[4:6] = "Jack Chen"#把索引4-6的元素改为Jack Chen,不够的元素自动增加
print(L2) #打印

  输出

['a', 'b', 'c', 'Boy', 'a', 'e', 1, 2]
['a', 'b', 'c', 'Boy', 'J', 'a', 'c', 'k', ' ', 'C', 'h', 'e', 'n', 1, 2]

删除

L2.pop()#删除最后一个元素

L2.remove('c') #删除从左找到的第一个指定元素

del L2[4]#用python全局的删除方法删除 指定索引元素

del L2[3:7]#删除多个元素(按索引)

L2 = ['a','b','c','Boy','J','a','c','k',' ','C','h','e','n',1,2,4,4,4]
L2.pop()#删除最后一个元素
print(L2)#打印
L2.remove('c') #删除从左找到的第一个指定元素
print(L2) #打印
del L2[4]#用python全局的删除方法删除 指定索引元素
print(L2)#打印
del L2[3:7]#删除多个元素(按索引)
print(L2) #打印

  输出

['a', 'b', 'c', 'Boy', 'J', 'a', 'c', 'k', ' ', 'C', 'h', 'e', 'n', 1, 2, 4, 4]
['a', 'b', 'Boy', 'J', 'a', 'c', 'k', ' ', 'C', 'h', 'e', 'n', 1, 2, 4, 4]
['a', 'b', 'Boy', 'J', 'c', 'k', ' ', 'C', 'h', 'e', 'n', 1, 2, 4, 4]
['a', 'b', 'Boy', 'C', 'h', 'e', 'n', 1, 2, 4, 4]

循环

for

L2 = ['a','b','c','Boy','J','a','c','k',' ','C','h','e','n',1,2]
for i in L2:
    print(i)

  输出

a
b
c
Boy
J
a
c
k

C
h
e
n
1
2

 

 range

 range()就是生成一个列表为执行for循环

用list将range转换成一个列表使用即可

 

>>> range(1,100)
range(1, 100)
>>> list(range(1,100))
[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, 29, 
 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 
 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(0,100,2))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 
56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]

 枚举

enumerate()#将索引值和元素组成列表,打印

names = ["old_driver",'rain','jack','shanshan','peiqi','black_girl']
for i in enumerate(names):#将索引值和元素组成列表,打印
    print(i)

  输出

(0, 'old_driver')
(1, 'rain')
(2, 'jack')
(3, 'shanshan')
(4, 'peiqi')
(5, 'black_girl')

不想有括号

for index,i in enumerate(names)#将索引和元素分辨定义为一个临时变量

names = ["old_driver",'rain','jack','shanshan','peiqi','black_girl']
for index,i in enumerate(names):
    print(index,i)

  输出

0 old_driver
1 rain
2 jack
3 shanshan
4 peiqi
5 black_girl

 排序

L2.sort()#按照ASCII码的顺序排序(符号-大写字母-小写字母)

L2.reverse()#反转

L2 = ['a','Z','d','#','z','y','A','e','h','!']
L2.sort()#按照ASCII码的顺序排序(符号-大写字母-小写字母)
print(L2)
L2.reverse()#反转
print(L2)

  输出

    ['!', '#', 'A', 'Z', 'a', 'd', 'e', 'h', 'y', 'z']

    ['z', 'y', 'h', 'e', 'd', 'a', 'Z', 'A', '#', '!']

 

扩展(拼接)

print(L2+n)#拼接

R.extend(m)#将m拼接到R后面

L2 = ['a','b','c','d','e','f']
n = [1,2,3,4]
print(L2+n)#拼接
m = ['H','I','J','K','L']
R = [7,8,9]
R.extend(m)#将m拼接到R后面
print(R)

  输出:

['a', 'b', 'c', 'd', 'e', 'f', 1, 2, 3, 4]
[7, 8, 9, 'H', 'I', 'J', 'K', 'L']

清空

L2.clear()#清空列表

L2 = ['a','b','c','d','e','f']
L2.clear()#清空列表
print(L2)

  输出

               []

复制(浅copy)

L1=L2.copy()#复制列表

L2 = ['a','b','c','d','e','f']
L1=L2.copy()#复制列表
print(L2)
print(L1)

  输出

['a', 'b', 'c', 'd', 'e', 'f']
['a', 'b', 'c', 'd', 'e', 'f']

浅复制的是把列表第一层的id独立创建一层,子列表就不行了。

深copy

import copy

list = copy.deepcopy(names)

names = ["old_driver",'rain','jack',[1,2,3,4]]
import  copy
list = copy.deepcopy(names)
print(names,list)
names[3][2] = -10
print(names,list)

  输出

    ['old_driver', 'rain', 'jack', [1, 2, 3, 4]] ['old_driver', 'rain', 'jack', [1, 2, 3, 4]]
    ['old_driver', 'rain', 'jack', [1, 2, -10, 4]] ['old_driver', 'rain', 'jack', [1, 2, 3, 4]]

长度

len()

names = ["old_driver",'rain','jack','shanshan','peiqi','black_girl']
print(len(names))

  输出

    6

#分割
>>> s = 'hello world'
>>> s.split(' ')
['hello', 'world']
>>> s2= 'hello,world'
>>> s2.split(',')

#连接
>>> l = ['hi','eva']
>>> '!'.join(l)
'hi!eva'

看源码按住ctrl,鼠标单击

posted @ 2018-08-16 22:14  混世妖精  阅读(261)  评论(0编辑  收藏  举报