python列表

Python中的列表

列表:正如其名,列表是包含在一对列[] 中的一组元素,列表由一系列按特定的顺序排列而成,列表中的元素可以不同,他支持 数值、字符串、甚至是列表(嵌套),列表中的元素是可以改变的。

下面是定义一个列表的例子:

list1 = ["a", 1, 2]
print(list1)         #['a', 1, 2]

你可以使用下标来访问列表中的元素:

a = ['a','b','c']
print (a[0]) #打印列表a的第一个元素,注意:从0开始
a[0] = 'A' #修改a列表中下标为0的元素的值为A

可以通过下标来处理列表中的部分元素,Python称之为切片
下面给出了切片的使用:

#切片
numbers = [12, 23, 34, 45]
print(numbers[0:3])   #打印列表numbers中索引为0,1,2的元素            [12, 23, 34]
print(numbers[:3])    #打印列表numbers中索引从0到2的元素               [12, 23, 34]
print(numbers[1:])    #打印列表numbers中索引从1到末尾的所有元素         [23, 34, 45]
print(numbers[:-1])   #打印列表numbers中第0到最后(不包括)一个元素      [23, 34, 45]
print(numbers[-2:])     #打印列表numbers中最后2个元素                   [34, 45]

切片的使用很灵活,下标为负数表示的是倒数第几个元素,-1是倒数第一个元素。不指定第一个索引,Python将从列表的开头开始;同理,如果不指定第二个索引,Python将终止于列表的结尾。更为方便的是,切片还可以指定第三个参数,这个值将告诉Python在指定范围内每隔多少个元素提取一个,下面给了一个Python切片中使用三个参数的例子:

list2 = ['a', 'b', 'c', 'd', 'e', 'f']
print(list2[0:4:3])   #在下标[0,3]即a , b, c, d 第一个元素为a,往后数3个的元素是d,所以结果为['a', 'd']

同时,我们也可以利用Python的切片来复制一个列表。注意,这里的复制是获得一个列表的副本。如果是直接将列表赋值给另一个变量,那么这两个变量指向的还是同一个列表。

#利用切片复制一个列表
new_numbers = numbers[:]     #复制列表numbers
print(new_numbers)    #[12, 23, 34, 45]

如果第三个参数为负数表示逆向读取,下面实现将一个字符串反转:

#这个有点难,大家了解一下
#翻转字符串
string = "python is a great language"
tem = string.split(" ")
tems = tem[-1::-1]
#第一个参数 -1 表示最后一个元素
#第二个参数为空,由于第一个参数为-1,所以是移动到开头
#第三个参数为步长,-1 表示逆向
rs = ' '.join(tems)
print(rs)

下面是一些列表中常用的方法:

a = ['a','b','c']

a.append('d') #将元素d添加到列表的最后面

a.insert(0,'A') #向列表索引0处插入元素A

del a[0] #删除列表a索引0处的元素

poped = a.pop() #将列表a的末尾元素弹出并将其赋值给poped,注意:a列表的末尾元素已删除

popeds = a.pop(0) #将列表a的索引0处的元素弹出
#注意:用del和pop方法都会删除元素

a.remove('b') #删除a列表中的b元素

a.sort() #将列表a中的元素按字母顺序进行永久性排列(假设a中的元素都是小写字母)

a.sort(reverse = True)  #将列表a中的元素按字母的相反顺序进行永久性排列

print(sorted(a)) #对列表a进行临时排序并打印,注意:列表a的元素顺序并没有发生改变
#并非所有列表的元素都是小写字母,真实的排序会比上面更加复杂

a.reverse()  #将列表a的元素进行反转

len(a)  #使用len函数获取列表a的长度

for i in a:
    print(i)    #遍历列表a,注意缩进,python根据缩进来判断代码和前一行的关系

numbers = list(range(1,5))    #使用range创建一个数字列表

print(numbers)    #使用range生成了一个数字列表,注意:生成的数字为1,2,3,4,不包括5

min(numbers)   #求数字列表numbers的最小值

max(numbers)   #求数字列表numbers的最大值
 
sum(numbers)   #求数字列表numbers的和

squares = [value**2 for value in range(1,5)]
print(squares)       #结果为:[1,4,9,16]  这是列表解析

另外,Python中的列表还可以相加 *n

list1 = ['a','b','c']
list2 = ['d']
print(list1 * 2)    #['a', 'b', 'c', 'a', 'b', 'c']
print(list1 + list2)  #['a', 'b', 'c', 'd']
list1.extend(list2)   #作用和加法相同,将list2中所有的元素添加到list1中

Python列表可以将另外一个列表的作为一个元素添加到列表中,即所谓的嵌套:
python列表_第1张图片
如果要对列表去重,可以使用set()
python列表_第2张图片

注意:
1,列表,列表,是在列[中,并用逗号隔开。
2,列表中的元素是可以修改的。
3,列表可以被索引和切片。
4,列表可以用+号进行连接。

你可能感兴趣的:(Python,python,列表)