Python数据类型—列表

2019-06-03  本文已影响0人  凌雲木

一 什么是列表

列表由一系列按特定顺序排列的元素组成。元素可以是任何类型,比如字符串,数字,浮点等 ,其中的元素之间可以没有任何关系。
在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。列表中的元素可以增加,删除,修改。下面是一个简单的
列表示例

a="ss"
arry=[1,a,"订单",1.2]
print(arry)
PS E:\Python\> python FirstDay.py
[1, 'ss', '订单', 1.2]

通过索引获取每个元素(索引从0开始)
print(arry[2])

PS E:\Python\> python FirstDay.py
订单

Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返
回最后一个列表元素:
print(arry[-1])

PS E:\Python\> python FirstDay.py
1.2

这种语法很有用,因为你经常需要在不知道列表长度的情况
下访问最后的元素。这种约定也适用于其他负数索引,例如,索引-2返回倒数第二个列表元素,
索引-3返回倒数第三个列表元素,以此类推。

print(arry[-4]) #打印倒数第四个元素

print(arry[-4])

1

二 列表元素的增删改

print(arry[-4])

[1, 'ss', '订单', '我是最后一个', '新来的']

del arry[-1] #删除最后一项

print(arry)
del arry[-1]
print(arry)

[1, 'ss', '订单', '我是最后一个', '新来的']
[1, 'ss', '订单', '我是最后一个']

使用方法pop删除元素:

pop方法将元素从列表中删除,并返回该元素的值

arry.pop(-1)
print(arry)

[1, 'ss', '订单']
a= arry.pop(-1) # 使用变量a来接收被删除的元素的值
print(arry);
print(a)

[1, 'ss', '订单']
我是最后一个

使用remove()方法删除元素

在不知道要从列表中删除的值的索引时。如果你只知道要删除的元素的值,可使
用方法remove()。

arry.append("1");
print(arry)
[1, 'ss', '订单', '我是最后一个', '1']
arry.remove("1");
print(arry)
[1, 'ss', '订单', '我是最后一个']

方法remove()只删除列表中第一个指定的值。如果要删除的值在列表中出现多次,其它值还会保存在列表中。要删除所有指定的值,需要通过循环删除。

三 使用 range()创建数字列表

Python函数range()让你能够轻松地生成一系列的数字
range(1,6):生成1~5的数字,不包括上限6

arrytwo=range(1,6);
arry=list(arrytwo)
for x in arry:
    print(x)

1
1
2
3
4
5

range(1,6):在范围1~6中,每隔一个数字生成一系列数字,默认间隔为1
生成1~10范围内的偶数数字,使用range(211,2)

生成1~10的偶数并循环打印出来:

arry1=list(range(2,11,2))
print(arry1)
for x in arry1:
    print(x)
[2, 4, 6, 8, 10]
2
4
6
8
10

四 列表解析

列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素

如:使用列表解析把1~11范围中的数字的平方存放到列表中

arry2= [value**2 for value in range(1,11)]
print(arry2)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

五 列表的部分操作

切片的实质就是从列表取部分元素,为原先列表生成子集的过程。子集最小包含列表的一个元素。最大和列表元素一样
多,是原先列表的一个复制

要创建列表切片,可指定从列表取元素的第一个元素和最后一个元素的索引。与函数range()一样,Python
在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需要指定索引0~3,
这将输出分别为0、1和2的元素。
如:

#列表的切片操作
arry3=[0,"one",2,"three",4,"five"]
print(arry3[0:3])
 
[0, 'one', 2]

打印了该列表的一个切片,输出也是一个列表,其中包含前三个索引的值
当要创建列表的切片从第一个元素开始时,索引0可以省略:
print(arry3[:3]),其与print(arry3[0:3])打印出的结果一样

print(arry3[2:]):打印出包含从第二个索引到最后一个索引元素的切片

print(arry3[-3:-1])#倒数第三个元素到倒数第一个

for x in arry3[0:3]:
    print(x)
#列表复制
print("----------列表复制","arry4-------------")
arry4 = ['1', '2', '3','4']
newarry4 = arry4[:]
print("arry4:")
print(arry4)
print("\nnewarry4 :")
print(newarry4)

创建了一个列表arry4,取列表arry4的一个切片(arry4[:])赋值给newarry4,最后打印出这两个列表,发现这两个列表包含的元素相同
结果:

----------列表复制 arry4-------------
arry4:
['1', '2', '3', '4']

newarry4 :
['1', '2', '3', '4']
请按任意键继续. . .

newarry4two= arry4
这里将列表arry4赋给newarry4two,而不是将newarry4two的副本赋给newarry4two
。这种语法实际上是让Python将新变量newarry4two关联到包含在arry4中的列表,因此这两个
变量都指向同一个列表。鉴于此,当我们将'5'添加到arry4中时,它也将出现在
newarry4two中;同样,虽然'6'好像只被加入到了newarry4two中,但它也将出现在这
两个列表中。

上一篇下一篇

猜你喜欢

热点阅读